首先大家都知道 B树 实现聚簇缩影的数据结构 ,严格一点在SQL SERVER;里是B+树,数据库中数据的存储时通过页 来实现的,在Mysql中 myisqm索引时单独存放的,而innodb表空间中数据和索引是在一起的,如果你的表 是innodb 那么你的表上一定会有有一个聚簇索引,如果有主键 那么就在主键上,没有那么在unique上 ,若果都没有 并且 你自己也没有创建聚簇索引,那么会默认在表后面创建一个聚簇索引,
有时会出现有索引比没有索引的速度还慢
这里分析一点原因
当你的索引见很大时,就会出现两个问题,如果你插入上百万的数据,索引就会增多,这样就会导致分页产生碎片,导致速度变慢,还有一点就是其他的索引会以聚簇索引为基础 这样会提高速度,但是同样会导致其他索引页变大,导致速率下降
建议
1 定时的 optimizer table 一下
2 尽量顺序插入数据,减少产生碎片