美文网首页js css html
MySQL慢查询八戒(寻常之见)

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

作者: 歩羡仙 | 来源:发表于2022-06-23 16:09 被阅读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

相关文章

网友评论

    本文标题:MySQL慢查询八戒(寻常之见)

    本文链接:https://www.haomeiwen.com/subject/kgqmvrtx.html