簡體   English   中英

MySQL分區刪除需要時間

[英]MySQL partition drop takes time

在某些情況下,我們使用按日期划分的MySQL分區來存儲數據,將信息保留X天,並且每天自動執行的過程都會自動創建分區並刪除舊分區(請注意,此處沒有歸檔的操作只是刪除)。 數據還通過某種哈希被細分為40個分區,以進一步優化訪問。

每天執行“更改表刪除分區”查詢時,數據庫都會遭受明顯的性能下降,並且在該數據庫上進行中繼的應用程序會顯示連接斷開,每秒處理較少的請求等。

我們正在為帶有InnoDB的此特定應用程序運行MySQL 5.5.17,刪除的每個分區都有幾百萬條記錄(可能超過1000萬條)。 每個分區的大小平均為4.5GB。

在分區刪除時,我沒有在那個盒子上看到任何密集的IO,所以我只能假定它與此無關。 但是,平均CPU負載從一天中的0.5正常值增加到8-10左右。 這持續了幾分鍾。

分區刪除不是應該很容易做到的邏輯刪除嗎? 是不是我們做錯了什么,還是可以以某種方式對其進行了調整,或者這是可以預期的?

干杯

我意識到這是一個古老的問題,但尚未得到解答,因此我將對其進行探討。

如果您的文件系統是ext3,則刪除文件可能需要一些時間。 XFS和EXT4會快很多

從MySQL的角度來看,可以加快速度的一個技巧是創建到分區文件的硬鏈接( 而不是符號鏈接)。 然后,DROP PARTITION將簡單地減少文件的引用計數,這幾乎是即時的。 您可以讓他們刪除您對該文件的鏈接。 這仍然需要一些時間,但是MySQL看不到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM