假设:在聚集索引的情况下,磁盘上记录的顺序与聚集索引的顺序相同。
问题:每次插入新记录时,磁盘上的数据是否都会重新排列?这不是对在磁盘上执行数据移动的性能造成很大影响吗?
MySQL 的即兴创作:每个索引页都有一个保留空间,即为将来更新保留的索引页空间的 1/16。
我的问题:当这个空间(保留空间)用尽并且新记录等待写入时会发生什么?这是否会重新排列该索引页之后的所有数据以适应此新记录?这对表演不是很大吗?如果是,有哪些可能的解决方法?
一些额外的参考:这是否直接映射到操作系统处理内部碎片的方式,并且文件系统试图将与同一文件对应的所有块尽可能地存储在磁盘上以节省磁盘寻道时间?如果可能的话,如果两者相关以及如何相关,是否有解释?
我发现Gary Mcgill的帖子(由于聚集索引导致 SQL 查询缓慢)上的答案对此非常有帮助。