索引使用策略及优化
创建索引
- 在经常查询而不经常增删改操作的字段加索引。
-
order by
与group by
后应直接使用字段,而且字段应该是索引字段。 - 一个表上的索引不应该超过
6
个。 - 索引字段的长度固定,且长度较短。
- 索引字段重复不能过多。
- 在过滤性高的字段上加索引(组合索引的话,过滤性高的放在首位)
使用索引注意事项
- 使用
like
关键字时,前置%会导致索引失效。 - 使用
null
值会被自动从索引中排除,索引一般不会建立在有空值的列上。 - 使用
or
关键字时,or
左右字段如果存在一个没有索引,有索引字段也会失效。 - 使用
!=
操作符时,将放弃使用索引。因为范围不确定,使用索引效率不高,会被引擎自动改为全表扫描。 - 若有
>,<,not in,between,!=
的查询条件的字段加入索引列后,后续加入的索引字段都不能起到过滤作用 - 不要在索引字段进行运算。
- 在使用复合索引时,最左前缀原则,查询时必须使用索引的第一个字段,否则索引失效;并且应尽量让字段顺序与索引顺序一致。
- 避免隐式转换,定义的数据类型与传入的数据类型保持一致。
常见隐式转换:传值与字段类型不一致(数字->字符串);多表关联大小写敏感定义不一致
网友评论