mysql:如何释放空间(innodb)

时间:2009-05-27 08:45:26

标签: mysql

我有一个配置了innoDB存储引擎的mysql数据库。 我删除了数据库(drop database <dbname>) 但磁盘空间尚未解放。

/var/lib/mysql,有一些名为ib_logfile0ib_logfile1ibdata1的“大”文件,其中最后一个文件非常大。我认为这些文件实际上是原始数据库。

我怎么知道我是否可以删除它们。或者更好的问题是如何放弃 数据库,以便回收磁盘空间。

澄清
我想删除整个数据库并释放磁盘空间。 我不想执行任何恢复。

提前致谢。

2 个答案:

答案 0 :(得分:8)

不幸的是,一旦分配了空间,就无法收缩这些文件。但是,当添加新数据时,MySQL将重新使用该空间,但该文件不会缩小。

要缩小大小,您需要转储数据库,然后重新恢复它们。

您还可以执行以下操作:

在配置文件中设置innodb_file_per_table,这将为每个表创建一个单独的文件。这将允许您在删除数据库后删除这些文件,并允许您在收缩特定表中的数据时使用OPTIMIZE TABLE命令重建ibd文件。

答案 1 :(得分:0)

一种解决方案是转储然后恢复。