MySQL执行delete之后,快速清理表占据的磁盘空间!

xpkdi 10年前

-- 收缩innodb存储引擎表的空间大小:

delete 了6000W日志表记录,但是表占据的文件大小一直没有变化。

后来,找到一招:
alter table xxxx engine=innodb;
搞定,而且速度很很快。

mysql> alter table order_action engine=innodb;
Query OK, 0 rows affected (0.62 sec)
Records: 0  Duplicates: 0  Warnings: 0

表里面有2000W记录,占据14G的ibd文件,只用不到一秒就搞定了。oh,my god!

[ps]:有些朋友说他这样操作很慢,大家也可以去试试看。