在線刪除大表

幾周之前搭建完anemometer之后并沒(méi)有對(duì)其進(jìn)行維護(hù),最近查詢中間庫(kù)的空間時(shí)發(fā)現(xiàn)anemometer下面對(duì)應(yīng)的slow_query_log庫(kù)文件已經(jīng)達(dá)到了127G之多

測(cè)試庫(kù)上難得看到這么大的表,干脆用來(lái)實(shí)驗(yàn)一下在線刪除大表


在線直接干58G的大表

直接在線上drop 58G的那張表,通過(guò)iostat -dxm 5可以看到畫風(fēng)是下圖這樣的

與此同時(shí)這個(gè)操作讓中間庫(kù)幾乎是hang住了,連登陸都在等待

這個(gè)drop的操作持續(xù)了將近2分鐘


正確姿勢(shì)干70G大表

#進(jìn)入到表空間路徑下,制作硬連接

ln global_query_review_history.ibd global_query_review_history.ibd.h

ln global_query_review_history.frm global_query_review_history.frm.h

#登陸MySQL執(zhí)行drop table,這里的操作是秒刪

drop table?global_query_review_history;

操作之后就只剩下硬鏈接了

如果用rm去刪除的話,在高峰期還是會(huì)對(duì)I/O造成影響

采用truncate命令去刪除大表(也可以選一個(gè)業(yè)務(wù)低峰期去rm硬鏈接)

truncate -s 0 global_query_review_history.ibd.h

truncate -s 0 global_query_review_history.frm.h


PS:truncate這個(gè)語(yǔ)法也挺恐怖的,跟rm一樣危險(xiǎn)而且我們?nèi)粘J褂帽容^少,之前參照野雞文章的做法去執(zhí)行了一下操作,測(cè)試庫(kù)的所有文件都被削減了。

穩(wěn)妥起見(jiàn),建議在前一步做ln的時(shí)候,把硬鏈接做到一個(gè)單獨(dú)的文件夾下,避免truncate的誤操作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容