索引使用的几个原则
索引的使用尽量满足以下几个原则:
- 全值匹配
- 最左前缀
- 不在索引列上做任何操作(包括但不限于,计算,函数,类型转换),会导致对应列索引失效。
- 不适用索引中范围条件右边的列
- 尽量使用覆盖索引
- 使用不等于或者not in 的时候回变成全表扫描
- is null,not null也无法使用索引
- like尽量匹配‘a%’ 如果实在不行尽量转换覆盖索引
- 字符串不加单引号容易索引失效(如整形会隐式类型转换)
- 少用or,在某些引擎或者版本下 or 并不会匹配对应的单值索引,尽量使用 union