IT虾米网

mysql 删除数据慢详解

admin 2018年06月20日 数据库 885 0

最近做项目,一张单表临时数据达到3亿,非常影响数据库性能,就考虑删除表中多余的数据,就遇到这个删除数据非常缓慢的问题了!
直接上代码吧:

DELETE FROM t_orders_detail WHERE pro_record_id in(SELECT a.prId FROM (SELECT pr.id AS prId FROM t_pro_record pr  WHERE pr.state=3 LIMIT 0,1) a);

这种是用in的一般写法,删除起来奇慢!
后来经过该进,使用inner join 的方式删除起来,效率成倍的提升!

DELETE od FROM t_orders_detail od,(SELECT * FROM t_pro_record pr  WHERE pr.state=3) a WHERE od.pro_record_id=a.prId; 

总结:像mysql这个关系型数据库,最好的删除方式就是使用连接的方式删除,可以大大提高删除效率!

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

spring MVC-fastjson中文乱码详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。