js css html

MySQL慢查询八戒(寻常之见)

2022-06-23  本文已影响0人  歩羡仙

1. 避免使用子查询

由于子查询会产生大量的临时表也没有索引,所以会消耗过多的CPU和IO资源,产生大量的慢查询 【子查询性能差的原因】

我觉得:可以把子查询转化为关联查询进行优化
网友:???(你有没有很多问号)

2. in 查询的避免(我经理,所以这痛楚…我懂,k+)

in 的值不要超过500个(且会利用索引)

3. 尽量避免使用外键约束

会降低性能,因为:外键会影响父表和子表的写操作

4. 避免使用双%号的查询条件

通常会使索引失效
只有后置%,是可以用到列上的索引的

5. 禁止使用不含字段列表的INSERT语句

应使用 insert into t(a1,b2,c3) values ('a','b','c');
NO‼️ NO‼️ NO! 而不是 insert into values ('a','b','c');

6. 避免使用JOIN关联太多的表

Mysql最多允许关联61个表,建议不超过5个

7. WHERE从句中禁止对列进行函数转换和计算

推荐:
where create_time >= '20220623' and create_time < '20220624'
不推荐:
where date(create_time)='20220623'

8. 数据库设计时,应该要对以后扩展进行考虑(避免不思量)

最后一条,也是极重要的一条(看评论,自古秀儿源自评论区)


这是希望的分割线,希望自己能在基础学习之余,有所进步~Fighting!!!

有部分观点来源于 - 匠心零度: 接口性能优化技巧,干掉慢代码!
https://mp.weixin.qq.com/s/ekOy65N7Wv7mYZ4sQO-uGw

上一篇 下一篇

猜你喜欢

热点阅读