删除mySQL表后,磁盘空间何时可用?

时间:2012-01-23 15:20:44

标签: mysql storage

如果我删除了一个innodb表,什么时候会回收磁盘空间? 它会立即发生吗?

记录而不是整个表怎么样?

1 个答案:

答案 0 :(得分:3)

这取决于您是否启用了innodb_file_per_table服务器设置。

如果启用了innodb_file_per_table,则每个表将其数据存储在单独的.ibd文件中。否则,所有表的数据都存储在共享的.ibd文件中。

使用innodb_file_per_table

  • 删除表时,将删除.ibd文件,并立即释放磁盘空间。
  • 当您删除记录时,它会释放.ibd文件中的空间,但不会缩小它。重建表(例如通过运行OPTIMIZE TABLE)将释放磁盘空间。

没有innodb_file_per_table

  • 删除表或从表中删除行会释放共享.ibd文件中用于存储未来数据的空间,但共享的.ibd文件永远不会缩小