zoukankan      html  css  js  c++  java
  • MySQL之SQL语句的优化

    仅供自己学习

    结论写在前面:

    1、尽量避免进行全表扫描,可以给where和order by涉及的列上建立索引

    3、尽量避免在where子句中对字段进行null的判断(如:select id from t where age is null )

    5、尽量避免在like查询中使用2个%来查询,否则进行全表扫描(如:select id from t where name like '%abc%' )

    7、尽量避免在 where 子句中对字段进行表达式操作,否则进行全表扫描(如:select id from t where num/2=100 ,可以:select id from t where num=100*2 

    8、尽量避免在where子句中对字段进行函数操作,否则进行全表扫描

    9、在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。

    11、任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。 

    12、在数据量大的时候,应尽量避免复杂的子查询,使用left join来代替

    13、在使用join连表查询的时候,被用来join的字段应该是同样的数据类型,对于字符串列,还要相同的字符集,否则将放弃使用索引

    14、join连表时,用小结果集驱动大结果集,尽量减少join语句中的Nested Loop的循环总次数

    15、join连表时,优先优化Nested Loop的内层循环,因为内层循环是循环中执行次数最多的,每次循环提升很小的性能都能在整个循环中提升很大的性能

    16、对被驱动表的join字段上建立索引

    17、当被驱动表的join字段上无法建立索引的时候,设置足够的Join Buffer Size

  • 相关阅读:
    tshark的命令使用
    svn log查看自己提交的记录
    账号安全 syyh
    Trivy 容器镜像扫描工具学习 syyh
    《关键对话》脑图整理 syyh
    Grafana 任意文件读取漏洞 (CVE202143798)学习 syyh
    容器安全管理 syyh
    【Sass/SCSS】我花4小时整理了的Sass的函数
    【JavaScript使用技巧】三个截取字符串中的子串,你用的哪个
    【SVG】为了前端页面的美丽,我选择学习SVG
  • 原文地址:https://www.cnblogs.com/chenhaoyu/p/8855529.html
Copyright © 2011-2022 走看看