作者:树缝中间_324 | 来源:互联网 | 2020-12-02 06:54
mysql中批量删除数据的方法:首先找出符合条件的最大id;然后在where字段上建立索引;最后通过命令“deletefromtable_namewhereid<maxIdlimit10000”批量删除数据即可。
mysql中批量删除数据的方法:首先找出符合条件的最大id;然后在where字段上建立索引;最后通过命令“delete from table_name where id
推荐:《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 <&#39;2017-04-06&#39;
|
在where字段上建立索引可提高效率
千万左右的数据大概需要10多秒
接着按id删除,一次删除10k,循环删除
1 2 3 4 5 6 7 | delete from table_name where id <maxid limit= "" 10000<= "" pre= "" ><p>以上就是mysql中如何批量删除数据的详细内容,更多请关注 第一PHP社区 其它相关文章!</p> <br>
<script type= "text/javascript" >
var cpro_id = "u6885494" ;
</script>
<script type= "text/javascript" src= "//cpro.baidustatic.com/cpro/ui/cm.js" ></script>
</maxid>
|