索引的坏处

 

1 建立的不对就有问题

就比如普通索引和唯一索引    change buffer (过程称为 purge

https://blog.csdn.net/weixin_41563161/article/details/102859171

https://blog.csdn.net/weixin_41563161/article/details/102365688

2 优化器选错的时候 对于由于索引统计信息不准确导致的问题,你可以用 analyze table 来解决。

MySQL 在真正开始执行语句之前,并不能精确地知道满足这个条件的记录有多少条,而只能根 据统计信息来估算记录数。   区分度

如果使用索引 a,每次从索引 a 上拿到一个值,都要回到主键索引上查出整行数据, 这个代价优化器也要算进去的。

而如果选择扫描 10 万行,是直接在主键索引上扫描的,没有额外的代价。

3 索引的缺点

1 需要占用物理空间

2 维护当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度

3 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。