mysql - 如何清除 ibdata1 文件及其对性能的影响?

标签 mysql database innodb

我查看了 ibdata 文件,它是 128 GB。我取出每个表的大小,一个表有 500 万条记录,它显示 90 GB。

我截断了该表,因为它不是必需的,并且我查看了 ibdata1 大小。它仍然显示 128 GB。然后我取出每个表的大小,然后总和只有 35-38 GB。

如何取回数据库服务器上的 90 GB 空间。我在 red-hat Linux 服务器上使用 mysql 和 php。

我猜 - 如果我们删除数据库上的任何内容,它只会删除复制,但分配给它的空间在我们手动执行之前不会被释放。是这样吗。

最佳答案

一旦您的 ibdata 文件占用了空间,它就永远不会消失。 “收缩”数据文件的唯一方法是转储您的数据库,将它们全部删除,删除 ibdata 文件,重新启动 mysql 并重新加载转储。

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

关于mysql - 如何清除 ibdata1 文件及其对性能的影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13953091/

相关文章:

数据库索引

MySQL 在大量行锁后崩溃

mysql - 如何从 SQL 中的多个列中选择不同的值?

mysql - 表中具有相同键的行数占总行数的百分比

c# - 如何使用 MySQL 的 OdbcParameter?

database - 使用 SQL Server Express 进行开发时如何管理版本控制?

java - 如何从最后插入的行中获取值?

mysql - MySQL 的 key 文件不正确

MySQL 5.5 innodb_large_prefix 配置设置未生效

php - 在&字符之后将不完整的文本保存在mysql数据库中