mysql一下子删除几十万条数据很卡怎么办

无敌的宇宙
无敌的宇宙
擅长邻域:Java,HTML,JavaScript,MySQL,支付,退款,图片上传

分类: MySQL 专栏: Mysql 标签: mysql一下子删除几十万条数据很卡怎么办

2024-04-01 17:51:11 535浏览

mysql一下子删除几十万条数据很卡怎么办

问题:之前是按日期批量删除:delet from xx where day=?

时间久了,数据越来越多几百万,有一天就删不动了。


解决思路:查一部分删除一部分,一直到删除完停止。

只查询id和前十条,这样很快仅零点几毫秒查询完成:select id from xx where id=? limit 0,10

然会循环删除,使用 delete from xx where id=?删除知道查询的数据为null。


注意:这样不会卡,但是删除十几万条数据需要半个小时,可使用线程池,让他慢慢执行就可以。

为啥使用id一个一个删除,因为id是主键有索引功能,删除很快。

为啥delet from xx where day=?删除非常慢,甚至程序卡死删不掉,因为他会先去查询,表本来有百万数据,某一天的数据最少也有16w,查询本身就很慢,查完在删除更慢(个人拙见,错误请指正哦)。所以折中就是使用limit快速查询一部分在删除。

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695