1. 程式人生 > >mysql 刪除資料慢

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這個關係型資料庫,最好的刪除方式就是使用連線的方式刪除,可以大大提高刪除效率!