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

删除mySQL表后,磁盘空间何时恢复可用?,mysql,storage,Mysql,Storage,如果我删除innodb表,磁盘空间将在何时回收? 这会立即发生吗 使用记录而不是整个表如何?这取决于是否启用了innodb\u file\u per\u table服务器设置 如果启用了innodb\u file\u per\u table,则每个表将其数据存储在单独的.ibd文件中。否则,所有表的数据都存储在共享的.ibd文件中 使用每个表的innodb文件 删除表时,.ibd文件将被删除,磁盘空间将立即释放 删除记录时,它会释放.ibd文件中的空间,但不会收缩它。重建表(如运行优化表)将释

如果我删除innodb表,磁盘空间将在何时回收? 这会立即发生吗


使用记录而不是整个表如何?

这取决于是否启用了
innodb\u file\u per\u table
服务器设置

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

使用每个表的innodb文件

  • 删除表时,.ibd文件将被删除,磁盘空间将立即释放
  • 删除记录时,它会释放.ibd文件中的空间,但不会收缩它。重建表(如运行
    优化表
    )将释放磁盘空间
不带每个表的innodb文件:

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

@Eugen Rieck:即使桌子掉了?为什么??INNODB有用于存储数据库的表空间-(大)文件。您定义了它们(包括可能的增长定义,如果必要的话),但它们永远不会被忽略。任何可用空间都保留供将来使用。