溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL大表刪除導(dǎo)致服務(wù)器變慢的分析

發(fā)布時(shí)間:2020-07-30 13:23:38 來源:網(wǎng)絡(luò) 閱讀:2472 作者:一個(gè)笨小孩 欄目:MySQL數(shù)據(jù)庫

---注意,在生產(chǎn)環(huán)境中MySQL刪除表的時(shí)候  如果表過大,幾十G  甚至上百G ,刪除的時(shí)候要小心,要不然會(huì)導(dǎo)致MySQLhang住,從而影響業(yè)務(wù);


1、MySQL在刪除表的時(shí)候,一共分為2步:

①:buffer pool頁面清除的過程

  在刪除表的時(shí)候,innodb會(huì)將文件在buffer pool中對(duì)應(yīng)的頁面清除,對(duì)于刪除表的頁面清除,只需要將頁面從flush隊(duì)列中刪除即可,而不需要去做flush操作,這樣就可以減少對(duì)系統(tǒng)的沖擊;


②:刪除ibd磁盤文件的過程(這個(gè)過程是很耗資源的也比較慢會(huì)影響數(shù)據(jù)庫的性能)


2、正確的刪除大表的姿勢(shì):

①:對(duì)表的系統(tǒng)文件做個(gè)硬鏈接,加速刪除

如: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]$ 


然后在數(shù)據(jù)庫中執(zhí)行:drop table  emp;  ---即可,



②:第二種方法就是分批刪除數(shù)據(jù),設(shè)定一個(gè)條件有序的刪除,如:可以按照每天的數(shù)據(jù)刪除或按照一個(gè)范圍進(jìn)行分批刪除,



---注意,在生產(chǎn)數(shù)據(jù)庫刪除表的時(shí)候,如果表數(shù)據(jù)量過大要么分批刪除  要么做硬鏈接的方式刪除;


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI