加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.52wenzhou.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql中批量删除数据的方法

发布时间:2022-02-23 14:33:29 所属栏目:MySql教程 来源:互联网
导读:mysql中批量删除数据的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧! mysql中批量删除数据的方法:首先找出符合条件的最大id;然后在where字段上建立索引;最
       mysql中批量删除数据的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
 
       mysql中批量删除数据的方法:首先找出符合条件的最大id;然后在where字段上建立索引;最后通过命令“delete from table_name where id < maxId limit 10000”批量删除数据即可。
 
       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中批量删除数据的方法大概了解了吗?

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读