MySQL数据库,磁盘碎片是否会影响查询性能?会的话是如何影响的?

自己感觉是会的,但不大确定。

因为存在磁盘碎片,因此有数据存入时,会先使用这部分磁盘空间,
如果查询时按照数据索引的顺序查找数据,可能会遇到逻辑上是连续的数据,但物理上不是连续的数据。导致无法顺序读取磁盘数据。
阅读 3.8k
1 个回答

对数据库来讲,碎片化有两种,文件系统碎片和内部表碎片。

简单回答是一定会有影响,但要具体分析,和存储引擎、文件系统、io缓存等都有关系。也和记录的增改删的顺序有关。
可以看一下这里的实验。

简单总结:
从实验结果中我们可以学到的几点:

– 同时增长多个表会导致数据碎片化,并会影响表扫描性能
– MyISAM比Innodb更糟
– Innodb范围分配有效(也许对于MyISAM也是不错的选择)
– 如果Innodb将不同的表存储在不同的文件中,则其遭受的碎片较少。

补充一点是
不要对 SSD 进行去碎片化,固态盘即使碎片化,对 io 也没有什么影响。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题