数据库—MYSQL 优化(二)
首页 > 数据库   作者:珠珠  2021年3月2日 17:12 星期二  热度:368°  字号:   评论:0 条
时间:2021-3-2 17:12   热度:368°  评论:0 条 

 #索引优化

        ##索引分析

              ###单表

                    1、建表SQL

                    2、案例

              

                      2、案例

        ##索引失效(应该避免)

               建表SQL

               案例(索引失效)

      • 1.全值匹配我最爱
      • 2.最佳左前缀法则  ——如果索引了多列,要遵守最左前缀法则,指的是查询从索引的最左前列开始并且不跳过索引中的列
      • 3.不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描
      • 4.存储引擎不能使用索引中范围条件右边的列
      • 5.尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select*
      • 6.mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描
      • 7.is null,is not null也无法使用索引
      • 8.like以通配符开头('%abc...')mysql索引失效会变成全表扫描的操作    —问题:解决like '%字符串%'时索引不被使用的方法??
      • 9.字符串不加单号索引会失效
      • 10.少用or,用它来连接时会索引失效
      • 11.小总结

 

##面试题讲解

        题目SQL

        定值、范围还是排序,一般order by是给个范围

        group by基本上都需要进行排序,会有临时表产生

 

###一般性建议

        对于单键索引,尽量选择针对当前query过滤性更好的索引

        在选择组合索引的时候,当前Query中过滤性最好的字段在索引字段顺序中,位置越靠前越好

        在选择组合索引的时候,尽量选择可以能够包含当前query中的where子句中更多字段的索引

        尽可能通过分析统计信息和调整query的写法来达到选择合适索引的目的

 

 

优化总结口诀:

全值匹配我最爱,最左前缀要遵守;

带头大哥不能死,中间兄弟不能断;

索引列上少计算,范围之后全失效;

LIKE百分写最右,覆盖索引不写星;

 您阅读这篇文章共花了: 
捐赠支持:如果觉得这篇文章对您有帮助,请“扫一扫”鼓励作者!
 本文无需标签!
二维码加载中...
本文作者:珠珠      文章标题: 数据库—MYSQL 优化(二)
本文地址:http://zhuzhu.eleuu.com/?post=69
版权声明:若无注明,本文皆为“珠珠个人博客”原创,转载请保留文章出处。
分享本文至:

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗

评论信息框


既然没有吐槽,那就赶紧抢沙发吧!