mysql中如何批量删除数据


本文摘自PHP中文网,作者藏色散人,侵删。

mysql中批量删除数据的方法:首先找出符合条件的最大id;然后在where字段上建立索引;最后通过命令“delete from table_name where id < maxId limit 10000”批量删除数据即可。

推荐:《mysql视频教程》

mysql批量删除大数据

mysql一次性删除大量数据是有可能造成死锁的,而且也会抛异常

1

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

这是由于需要删除的数据太大,mysql给的buffer好像只有8MB左右

lock wait timeout exceed 超时

所以需要分批处理,这也是操作大数据时一种常见的思路

网上比较好的一种方法是:

首先找出符合条件的最大id(这里的id是有序的,不需要连续)

1

select max(id) from table_name where create_time < '2017-04-06'

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

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

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

1

delete from table_name where id < maxId limit 10000

以上就是mysql中如何批量删除数据的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

mysql如何实现多表查询?mysql多表查询的语句

jdbc连接操作mysql,直接操作和预处理方式

查看mysql数据库大小、表大小和最后修改时间

sql与mysql区别与联系

mysql存储过程使用技巧有哪些

mysql数据库】第一章解读:mysql架构与历史

如何在mysql创建一个数据库(代码示例)

mysql中的事件调度基础学习教程

mysql中where与on的区别及何时使用详析

python 操作 mysql数据库

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...