MySQL执行计划优化(SQL优化,避免索引无效的小技巧)

如果以下场景,及时相关字段建立了索引,也无法使用索引,在写SQL时要避免以下情况的出现

1.查询条件中 建立索引的字段列 最左一通配符 % 开始,例如 where a like '%xx';

2.查询条件中 建立索引的字段列 使用 IS NULL 或 IS NOT NULL;

3.查询条件中 建立索引的字段列 使用 关键词 OR;

4.查询条件中 建立索引的字段列 上进行数字运算或函数运算(包括隐式数据转换);

5.查询条件中 建立索引的字段列 使用负向查询条件: NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等;

6.对于复合索引,查询条件没有匹配第一个索引列,即使覆盖了其他索引列,也无法使用索引,因为复合索引是按从左到右一次匹配,即从第一个索引列开始,一致到最后一个索引列;中间如果出现字段不能匹配,则后续的索引字段不会再匹配;

另外,主键字段不需要在建立索引,例如:已针对(a,b)建立主键,就不需要在对 a 或(a,b)建立索引;不过,如果已针对(a)建立主键,可以针对(b,a)建立索引;

猜你喜欢

转载自blog.csdn.net/li_tiantian/article/details/85596653