十一、Mysql索引优化

2020-08-03  本文已影响0人  此间有道

1. 减少大基数范围查询

1)少用!=,<>;
2)少用is null, is not null;

2.等值查询时,避免转换操作

1)避免在等号左侧的索引列上做计算操作,如函数,类型转换;
2)避免等号右侧的类型与索引类不同而引起类型转换;

3. 聚合索引查询时的最左前缀法则

1)范围条件的索引会中断左前缀匹配;

4.尽量应用覆盖索引,查询必要的列而非所有列

5.少用范围查询

1)少用or,in
2)Like查询时尽量采用后模糊“xxx%”,而非前模糊“%xxx”;

6.使用orderby或group by时尽量对索引列操作,避免出现filesort

7. in, exist

1)select * from A where id in (select id from B)
以B为驱动表去遍历A;适合于B数据量 < A数据量
2)select * from A where exists (select 1 from B where B.id = A.id)
以A为驱动表去遍历B;适合于B数据量 > A数据量

8.count

count(*) ,count(1)会统计字段为null的行;
count(col)不会统计该列为null的行;

上一篇下一篇

猜你喜欢

热点阅读