代码之家  ›  专栏  ›  技术社区  ›  Aaron Fi

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

  •  1
  • Aaron Fi  · 技术社区  · 16 年前

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

    我很好奇这是为什么。

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

    2 回复  |  直到 16 年前
        1
  •  2
  •   Brandon Grossutti    16 年前

    从我对mysql的理解来看,当它接近容量时,它有一个增长算法,当它装载时,它选择了不同的大小,很快就会减少多余的存储空间

        2
  •  2
  •   Bill Karwin    16 年前

    故意的 .

    也就是说,存储引擎可能会故意在此处或此处留下一些额外的空间,因此当您更改值时,它可以在不必重新排序整个数据文件的情况下将行放入。您甚至可以使用服务器属性来配置要分配多少slop空间。

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