Rumah >pangkalan data >tutorial mysql >如何释放已删除的InnoDB磁盘空间

如何释放已删除的InnoDB磁盘空间

WBOY
WBOYasal
2016-06-07 17:08:091414semak imbas

Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长。如果想彻底

Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长。如果想彻底释放这些已经删除的数据,,需要把数据库导出,删除InnoDB数据库文件,然后再倒入。 下面是基本的步骤:

1 使用mysqldump命令将InnoDB数据库导出

2 停止MySQL

3 删除所有InnoDB数据库文件和日志

4 启动MySQL并自动重建InnoDB数据库文件和日志文件

5 导入前面备份的数据库文件

有一点要注意,你配置了MySQL数据库复制,当你导入数据库备份文件的时候,所有的Query都可能会被写入Binlog,可以执行SET SQL_LOG_BIN = 0;暂时停止Binlog的写入。

还有一种方式是在创建数据库的时候设置innodb_file_per_table,这样InnoDB会对每个表创建一个数据文件,然后只需要运行OPTIMIZE TABLE * 命令就可以释放所有已经删除的磁盘空间。

linux

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn