索引的坏处
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 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。