透過滾動截斷有效刪除舊的 MySQL 行
在許多應用程式中,需要定期刪除超過指定年齡的行。在處理高流量表時,找到有效的方法至關重要。
目前方法
以前,使用執行的 cron 作業批次截斷表每小時。雖然這可以防止應用程式掛起,但在寫入流量較大期間引入了可擴展性限制。
替代方案:計畫事件
目前方法的替代方案是利用 MySQL 的 Event特徵。事件允許按計劃自動執行資料庫任務。
滾動截斷的範例事件
以下範例事件將刪除「 tableName 」表中的行超過 30天:
SET @@GLOBAL.event_scheduler = ON; CREATE EVENT AutoDeleteOldNotifications ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY ON COMPLETION PRESERVE DO DELETE LOW_PRIORITY FROM databaseName.tableName WHERE datetime < DATE_SUB(NOW(), INTERVAL 30 DAY);
使用事件的好處
事件提供了幾個優點:
以上是MySQL 事件如何提高刪除舊行的效率和可擴充性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!