MySQL 5.7的表删除数据后的磁盘空间释放

首先delete数据。


mysql> optimize table report;

+------------+----------+----------+---------------------------------------------------------------------------------------+

| Table      | Op       | Msg_type | Msg_text                                                                              |

+------------+----------+----------+---------------------------------------------------------------------------------------+

| du.report | optimize | note     | Table does not support optimize, doing recreate + analyze instead                     |

| du.report | optimize | error    | Error writing file './du/#sql-3a1_2da46.frm' (Errcode: 28 - No space left on device) |

| du.report | optimize | status   | Operation failed                                                                      |

+------------+----------+----------+---------------------------------------------------------------------------------------+

3 rows in set, 1 warning (0.04 sec)

不支持 optimize。

空间也不足。


mysql> truncate table report;

ERROR 1030 (HY000): Got error 168 from storage engine


释放一点空间,可以truncate表了。

mysql> truncate table report;

Query OK, 0 rows affected (2.82 sec)


释放表占用的磁盘空间:

mysql> alter table report ENGINE='InnoDB';

Query OK, 0 rows affected (11 min 56.05 sec)

Records: 0  Duplicates: 0  Warnings: 0


完成空间释放。


请使用浏览器的分享功能分享到微信等