您好,登錄后才能下訂單哦!
---注意,在生產環境中MySQL刪除表的時候 如果表過大,幾十G 甚至上百G ,刪除的時候要小心,要不然會導致MySQLhang住,從而影響業務;
1、MySQL在刪除表的時候,一共分為2步:
①:buffer pool頁面清除的過程
在刪除表的時候,innodb會將文件在buffer pool中對應的頁面清除,對于刪除表的頁面清除,只需要將頁面從flush隊列中刪除即可,而不需要去做flush操作,這樣就可以減少對系統的沖擊;
②:刪除ibd磁盤文件的過程(這個過程是很耗資源的也比較慢會影響數據庫的性能)
2、正確的刪除大表的姿勢:
①:對表的系統文件做個硬鏈接,加速刪除
如:ln /mysql/data/test/emp.ibd /mysql/data/test/emp.ibd.hdlk
[mysql@db2 test]$ ln /mysql/data/test/emp.ibd /mysql/data/test/emp.ibd.hdlk
[mysql@db2 test]$ ls -l
total 208
-rw-r--r-- 1 mysql mysql 65 Mar 3 10:35 db.opt
-rw-rw---- 1 mysql mysql 8556 May 12 04:40 emp.frm
-rw-rw---- 2 mysql mysql 98304 May 12 04:40 emp.ibd
-rw-rw---- 2 mysql mysql 98304 May 12 04:40 emp.ibd.hdlk
[mysql@db2 test]$
然后在數據庫中執行:drop table emp; ---即可,
②:第二種方法就是分批刪除數據,設定一個條件有序的刪除,如:可以按照每天的數據刪除或按照一個范圍進行分批刪除,
---注意,在生產數據庫刪除表的時候,如果表數據量過大要么分批刪除 要么做硬鏈接的方式刪除;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。