mysql中批次刪除資料的方法:先找出符合條件的最大id;然後在where欄位上建立索引;最後透過指令「delete from table_name where id < maxId limit 10000」批次刪除資料即可。
推薦:《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 < '2017-04-06'
在where字段上建立索引可提高效率
千萬左右的資料大概需要10秒以上
接著按id刪除,一次刪除10k,循環刪除
delete from table_name where id < maxId limit 10000
以上是mysql中如何批次刪除數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!