文章目录
创建索引的原则
建议创建索引
- select 语句,频繁作为where条件的字段
- update/delete语句的where条件
- 需要分组、排序的字段
- distinct所使用的字段
- 字段的值有唯一性约束
- 对于多表查询,连接字段应创建索引,且类型务必保持一致
- 避免隐式转换
不建议创建索引
- where子句里用不到的字段
- 表的记录非常少
- 有大量重复数据,选择性低
- 索引的选择性越高,查询效率越好,因为可以在查找时过滤更多行
- 频繁更新的字段,如果创建索引要考虑其索引维护开销
索引失效与解决方案
可能索引失效的场景:
-
- 索引列不独立。独立是指:列不能是表达式的一部分,也不能是函数的参数
-
- 使用了左模糊
-
- 使用OR查询的部分字段没有索引
-
- 字符串条件未使用’'引起来
-
- 不符合最左前缀原则的查询
-
- 索引字段建议添加NOT NULL约束
-
- 隐式转换导致索引失效
索引列不独立
- 索