1、建议创建索引的场景

  • select/update/delete语句频繁作为where条件的字段
  • 需要分组以及排序的字段
  • distinct使用的字段
  • 字段的值有唯一性约束
  • 对于多表联合查询,连接字段应该创建索引,且字段类型必须保持一致,避免隐式转换,导致索引可能无法使用


2、不建议创建索引的场景

**

  • where用不到的字段
  • 表记录较少的表
  • 索引的选择性低的字段

索引的选择性:
不重复的索引值和数据表的记录总数的比值。

  1. 查看索引选择性
  2. select count(DISTINCT name) /count(*) from user;
  • 对于频繁更新的字段要考虑维护索引的开销,如果某字段修改多插叙少则不建议创建索引