前言
我们知道索引可以加快数据库查询数据的效率,可是什么时候能加索引什么时候不能加索引呢?索引有什么缺点呢?我往下看。
提示:以下是本篇文章正文内容,下面案例可供参考
一、索引的缺点是什么?
- 需要占用物理空间,数量越大,占用空间越大;
- 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增大;
- 会降低表的增删改的效率,因为每次增删改索引,B+ 树为了维护索引有序性,都需要进行动态维护。
所以说索引不是万能的,他是有一定的缺陷的。
二、什么时候适合使用索引?
- 字段有唯一性限制,比如商品编码;
- 经常作为查询列的字段,如果查询条件不是一个字段,可以建立联合索引。
- 经常使用GROUP BY 和ORDER BY的字段。
三、什么时候不适合建立索引?
- where条件、group by条件、order by条件里用不到的字段,索引是用来快速定位数据的,如果定位不到数据,那么该索引是没有用的。索引也会占用空间。
- 字段中存在大量的重复数据,不需要建立索引,比如性别字段,只有男女。
- 表数据太少的时候,不需要创建索引。
- 经常跟新的字段不需要建立索引,因为频繁修改索引字段,会导致B+树频繁重建索引,这个过程会影响数据库的性能。
四、有什么可以优化索引的方法?
- 前缀索引优化
- 覆盖索引优化
- 主键索引最好是自增的
- 防止索引失效