我是靠谱客的博主 威武雨,最近开发中收集的这篇文章主要介绍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 < '2017-04-06'
登录后复制

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

千万左右的数据大概需要10多秒

接着按id删除,一次删除10k,循环删除

delete from table_name where id < maxId limit 10000
登录后复制

以上就是mysql中如何批量删除数据的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是威武雨为你收集整理的mysql中如何批量删除数据的全部内容,希望文章能够帮你解决mysql中如何批量删除数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(79)

评论列表共有 0 条评论

立即
投稿
返回
顶部