mysql刪除大表


在mysql中遇到一個大表,大概有17G左右,在對這個表進行查詢、修改時均遇到了很大的困難,於是想着刪除這張表。通常的刪除操作可以通過delete、drop、truncate操作,試了這三個命令,但是最終都以失敗,都無法刪除此表,最后使用下面的方式最終刪除。(linux下)

1、建立硬鏈接

找到mysql的數據文件,找到這張表在硬盤上的名稱,我的是tmplst.frm和tmplst.ibd,通過查看tmplst.ibd的大小到了17G左右,這就是無法刪除的原因。其中tmplst是表名。

在這個文件夾下,為tmplst,frm和tmplst.ibd分別建立硬鏈接,

ln tmplst.frm tmplst.frm.h
ln tmplst.ibd tmplst.ibd.h

這樣的話就成功的建立了兩個硬鏈接。

2、刪除表

在mysql中使用drop命令刪除表

drop table tmplst;

這時發現刪除非常快,不到一分鍾刪除完成。

3、刪除硬鏈接文件

在硬盤上刪除新建的硬鏈接。分別刪除tmplst.frm.h和tmplst.ibd.h。

rm -rf tmplst.frm.h
rm -rf tmplst.idb.h

最后,成功了刪除一張大表(17G左右)。

 

有不當之處,歡迎指正,感謝!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM