删除表后如何回收InnoDB中的磁盘空间

Omi*_*eri 4 mysql innodb diskspace

我在mysql中有一个大InnoDB表。问题是我的磁盘空间几乎已满。我想减少磁盘空间。如果我要从表中删除一些行并使用以下命令:

optimize TABLE_NAME
Run Code Online (Sandbox Code Playgroud)

那么我的磁盘空间将会减少。但我想放下桌子。如果我删除该表,则没有任何表可以对其进行优化!删除表后减少磁盘空间的适当命令是什么InnoDB

Zaf*_*lik 7

drop 命令会自动释放磁盘空间。

注意:假设您正在使用 innodb_file_per_table,因为您可以通过优化表语法来释放空间。


Rah*_*thi 5

您可以尝试将服务器配置为使用innodb_file_per_table,但请确保您有备份,然后删除并恢复它。您可以运行optimize table.

您可以运行检查 innodb_file_per_table 是否为 ON

mysql> show variables like "innodb_file_per_table";
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)