mysql大量資料刪除

2021-10-22 20:12:00 字數 436 閱讀 3844

近期有一張表,存量有3000多萬資料,每天還在以40萬左右增長。業務上準備只保留兩個月的資料。準備刪除。

這個量直接刪除,可能會導致鎖表

要麼寫個儲存過程,迴圈,每次刪除1000條,sleep下。當然這個方法很不錯。但delete是dml語言,刪除只是把狀態標記為刪除,並沒有刪除資料檔案,也就是空間索引並沒有釋放。依然解決不了資料量大對業務帶來慢的困惑。那麼如何釋放空間和索引呢?

mysql提供了optimize,對大量delete資料後的表進行優化,釋放空間和索引。注意:optimize table 命令只對 myisam 、 bdb 和 innodb 表起作用。

其實還有乙個不錯的辦法:按月建立分割槽。 對要刪除的資料,按分割槽,drop,徹底delete

mysql刪除大量資料

mysql刪除大量資料時使用批量刪除,批量刪除時,不要使用排序,會影響刪除效率 delete from table name where id 66169770 limit 1000000 以下資料摘自 生產環境,往往需要更新 刪除大量的資料,由於很可能消耗太多的io資源,對於生產繁忙的系統,需要小...

MySql刪除大量資料

再介紹刪除解決方案前,先來回顧下三種刪除表的操作 delete語句 truncate語句以及drop語句。drop truncate delete 下面說下刪除大量資料的解決方案 delete from t test limit 100000或者建立儲存過程 delimiter drop proce...

mysql批量刪除大量資料

mysql批量刪除大量資料 假設有乙個表 syslogs 有1000萬條記錄,需要在業務不 停止的情況下刪除其中statusid 1的所有記錄,差不多 有600萬條,直接執行 delete from syslogs where statusid 1 會發現刪除失敗,因為lock wait timeo...