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

mysql中如何批次刪除數據

藏色散人
發布: 2020-10-29 16:49:42
原創
13543 人瀏覽過

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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板