首頁  >  文章  >  資料庫  >  mysql中如何批次刪除數據

mysql中如何批次刪除數據

藏色散人
藏色散人原創
2020-10-27 09:48:5713519瀏覽

mysql中批次刪除資料的方法:先找出符合條件的最大id;然後在where欄位上建立索引;最後透過指令「delete from table_name where id < maxId limit 10000」批次刪除資料即可。

mysql中如何批次刪除數據

推薦:《mysql影片教學

mysql批次刪除大數據

mysql一次刪除大量資料是有可能造成死鎖的,而且也會拋出異常

The total number of locks exceeds the lock table size in MySQL

這是由於需要刪除的資料太大,mysql給的buffer好像只有8MB左右

lock wait timeout exceed 超時

所以需要分批處理,這也是操作大數據時常見的思路

網上比較好的一種方法是:

先找出符合條件的最大id(這裡的id是有序的,不需要連續)

select max(id) from table_name where create_time < &#39;2017-04-06&#39;

在where字段上建立索引可提高效率

千萬左右的資料大概需要10秒以上

接著按id刪除,一次刪除10k,循環刪除

delete from table_name where id < maxId limit 10000

以上是mysql中如何批次刪除數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn