前言
線上有一個表,大小為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