什么时候创建索引?什么时候不建议创建索引?
这个问题,也算是高频问题了。我们接下来就说说啥时候适合创建索引,啥时候不适合创建索引。
- 适合创建索引情况
- 频繁的作为where条件查询的字段。此时我们可以给该字段添加索引,可以很大程度提高我们的查询效率。
- 关联字段可以建索引。关联字段一般用在多表查询的时候,关联字段就是在一个表里面放了另外一个表的id(或者其他的唯一标识字段) 比如用户表中的地址id,那么在地址表中就存放这地址的详细信息。
- 排序字段可以建索引。我们知道B+树是顺序生成的,那么我们为排序字段生成索引,那么排序操作效率就十分高了。
- **分组字段可以建索引。**分组的前提是要先排序,我们也可以为其建立索引,提高分组的效率。
- 统计字段可以建索引。如count() max()
- 不适合创建索引的情况
-
频繁更新的字段不建议建立索引。
-
where 分组,排序中用不到的字段不用建索引。
-
当表数据比较少时可以不用建索引,本来就几百条数据,那么压根没必要去建索引。
-
参与mysql函数计算的字段不用建索引。因为使用mysql函数会导致索引失效。