我有一个innodb表,并在主机A上设置了mysql innodb_file_per_table = 1
此表的ibd文件分配约3GB磁盘
然后,我把这个表转储到sql文件(a.sql),a.sql分配大约2.5Gb磁盘
接下来,我将a.sql导入到主机B。
主机A和主机B具有相同的硬件,相同的系统,相同的mysql配置。
但是我发现,主机B上的这个表的ibd文件分配了30GB磁盘。
我尝试将此表在主机B上转储到b.sql
b.sql具有相同大小的a.sql。
我确信在将a.sql导入到主机B之后,我们没有警报表操作。
为什么分配磁盘这么大?感谢。
表格说明:
答案 0 :(得分:0)
你还有ibdata1吗?在主机A上运行优化表a后的结果是什么?这可能是因为在主机A中,表A的某些数据位于文件ibdata1中。