delete 清空表之后,磁盘空间未发生变化?

delete 清空表之后,磁盘空间未发生变化?

💡 原文日文,约1800字,阅读约需5分钟。
📝

内容提要

本文讨论了MySQL中的optimize table命令,用于删除表中的空洞和优化文件碎片。optimize命令可以重新整理表空间并减少文件大小。在InnoDB引擎中,optimize命令实际上是alter table操作,可以实现索引重整和释放未使用的空间。optimize操作是在线DDL操作,不会阻塞CURD操作。

🎯

关键要点

  • optimize table命令用于删除表中的空洞和优化文件碎片。
  • optimize命令可以重新整理表空间并减少文件大小。
  • 在InnoDB引擎中,optimize命令实际上是alter table操作,可以实现索引重整和释放未使用的空间。
  • optimize操作是在线DDL操作,不会阻塞CURD操作。
  • 删除操作在MySQL中并不会立即释放空间,而是标记为已删除,导致空洞的产生。
  • 插入操作也可能造成空洞,尤其是使用随机字符串作为ID时。
  • 使用optimize table命令可以有效减少表文件的大小。
  • 在InnoDB中,optimize命令会被映射为alter table操作,释放未使用的空间。
  • optimize操作的执行不会阻塞正在进行的CURD操作。
➡️

继续阅读