1、建议创建索引的场景
- select/update/delete语句频繁作为where条件的字段
- 需要分组以及排序的字段
- distinct使用的字段
- 字段的值有唯一性约束
- 对于多表联合查询,连接字段应该创建索引,且字段类型必须保持一致,避免隐式转换,导致索引可能无法使用
2、不建议创建索引的场景
**
- where用不到的字段
- 表记录较少的表
- 索引的选择性低的字段
索引的选择性:
不重复的索引值和数据表的记录总数的比值。
查看索引选择性select count(DISTINCT name) /count(*) from user;
- 对于频繁更新的字段要考虑维护索引的开销,如果某字段修改多插叙少则不建议创建索引
