如何清除ibdata1文件以及它可能怎么影响其性能?

Man*_*mar 6 mysql database innodb

我查看了ibdata文件,它是128 GB.我拿出每张桌子的大小,一张桌子有500万的记录,它显示了90 GB.

我截断了那个表,因为没有必要,我查看了ibdata1的大小.它仍显示128 GB.然后我拿出每张桌子的大小,然后总和只有35-38 GB.

如何在Db服务器上恢复90 GB的空间.我在red-hat Linux服务器上使用mysql和php.

我猜 - 如果我们删除DB上的任何东西它只是删除复制,但分配给它的空间不会被释放,直到我们手动执行.是这样的吗?

Ray*_*Ray 5

一旦ibdata文件消耗了空间,它就永远不会消失."shink"数据文件的唯一方法是转储你的dbs,删除它们,删除ibdata文件,重启mysql并重新加载转储.

如果经常删除整个表,则可以将innodb配置为每个表使用一个数据文件.在这种情况下,删除表时,可以删除该表特定的ibdata文件.