mysql 删除数据慢

最近做项目,一张单表临时数据达到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这个关系型数据库,最好的删除方式就是使用连接的方式删除,可以大大提高删除效率!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值