gpt4 book ai didi

sql - 为什么两个 mysql 文件(相同的表,相同的内容)大小不同?

转载 作者:行者123 更新时间:2023-11-29 05:00:48 27 4
gpt4 key购买 nike

我使用了一个现有的 MySQL 数据库,并在新主机上设置了一个副本。

新主机上某些表的文件大小比旧主机上的对应文件小 1-3%。

我很好奇这是为什么。

我的猜测是,旧主机的文件随着时间的推移而增长,并且在该文件的 b 树结构中,存在更多碎片。而新主机,因为它是从头开始创建文件(通过二进制日志),所以避免了这种碎片化。

b 树结构本身存在碎片是否有意义? (在数据库层内说话,而不是关于操作系统文件系统层)我最初认为“不”,但话又说回来,这种碎片不是 DBA 压缩数据库文件任务的基础吗?

我想知道这是否只是文件系统层的产物。即新主机的磁盘驱动器几乎是空的,因此较少的碎片会导致分配新文件。再一次,我不认为碎片会显示在报告的文件大小中(Linux 操作系统)。

最佳答案

MySQL 数据文件或索引文件肯定会出现碎片。这很常见,甚至是故意

也就是说,存储引擎可能会故意在这里或那里留下一些额外的空间,这样当您更改值时,它可以容纳行而无需重新排序整个数据文件。您甚至可以使用服务器属性来配置要分配多少废料空间。

我什至不会对 1-3% 的文件差异眨眼。

关于sql - 为什么两个 mysql 文件(相同的表,相同的内容)大小不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/928440/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com