美文网首页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