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分钟,等之后实战的时候再看吧。

上一篇下一篇

猜你喜欢

热点阅读