MySQL 索引优化
2020-05-27 本文已影响0人
攻城狮托马斯
十大索引优化法则:
1.尽量全值匹配,用三个匹配比两个比一个的key length要多,查找速度也更快
ex.
2.最佳左前缀原则, 带头大哥不能死,中间兄弟不能断(开火车不能断)
3.不要在索引列上做任何的操作: 行数,计算等任何操作都会导致索引失效而转为全表扫描
4.范围条件放最后,如果范围条件放中间的话,后面的条件都会失效
(不是SQL语句中放最后,而是在索引表中放最后,在索引栏位中)
5.覆盖索引尽量用, 只访问索引的查询(索引列和查询列一致), 减少select *(不用回表)
https://blog.csdn.net/a729885163/article/details/52526504
6.不等于(!= 或者 <>) , 比如下例,索引会失效
EXPLAINSELECT*FROMstaffwherename!='Alice';
7.Null/Not null可能会导致索引失效, 也不一定会失效.
(在没有null值的表中用null会失效,在有null的表中用not null会失效)
8.Like查询可能会导致索引失效,导致全盘扫描,只能在末尾加, 如"cod2%"
如select * from table where code = 'Cod25'
https://blog.csdn.net/bolg_hero/article/details/77606734
9.字符类型加引号(where name = 917 / where name = '917')
10.OR 改Union效率高,OR可能会导致索引失效.
导入优化
在第十节课最后10分钟,等之后实战的时候再看吧。