mysql一下子删除几十万条数据很卡怎么办
分类: MySQL 专栏: Mysql 标签: mysql一下子删除几十万条数据很卡怎么办
2024-04-01 17:51:11 431浏览
问题:之前是按日期批量删除: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)展开评论
展开评论