前言
线上有一个表,大小为24G左右,没有什么重要的数据,却一直没有优化,导致业务无法进行,在此环境上,所以我们开始了删除之路
步骤
复制表
我这里使用Navicat工具直接复制表,选择仅结构即可。
创建硬链接
如果不知道自己的存储位置,可使用show variables like "datadir";
查看自己的数据存储位置。
ln instruction.frm instruction.frm.bak
ln instruction.ibd instruction.ibd.bak
删除表
DROP TABLE "表格名";
24G的数据删除大概用了15秒左右
修改表名
将我们刚才复制的表,表名修改为线上正常使用的表名即可。
删除物理文件
切记大的物理文件不可直接删除,直接操作会导致磁盘IO和CPU利用率升高,影响线上业务可使用truncate
来进行删除操作。
truncate -s 2G instruction.ibd.bak