MySQL tableName.Ibd文件大小很大

时间:2017-08-23 12:18:51

标签: mysql

最近我将MySQL DB从一台服务器复制到另一台服务器。这意味着我从Master DB中清除了许多行。因此,经过一段时间复制正确完成。我在两个DB中验证了数据的数量,它是一样的。

之后我只使用以下查询验证了slave中的DB大小。

SELECT table_schema "Schema_Name", Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" FROM   information_schema.tables GROUP  BY table_schema;

通过这个查询,我得到了DB的大小。它是60 GB。

我的问题

我有一个名为 tableName.ibd 的文件" ProgramData-> Data-> DBName"夹。该文件占用500GB内存。

所以我的问题是为什么这个文件占用了这么多大小,虽然我的数据库大小本身只有60GB。

我还在程序数据中验证了Ibdata文件大小。它只有1GB。

请帮我解决这个问题。如何清除此文件。对清除这个有什么影响。

1 个答案:

答案 0 :(得分:2)

删除数据时文件会碎片化。如果你删除了表中的大多数记录,那么大多数记录都是空的是正常的。

最简单的整理方式'它是通过运行ALTER TABLE tablename FORCE。这会进行无操作更改并重建表。

60GB的表需要一段时间才能重建,所以在运行它时要小心。