有没有办法加快这个MySQL删除查询?

时间:2015-08-07 20:22:36

标签: mysql sql optimization sql-delete

我正在使用MySql 5.5.37。我正试图找出一种更快的方式来编写下面的查询。我有两个表,access_code和教室。 “教室”表具有对access_code表的主键的外键约束(access_code_id)。我正在尝试删除access_code表中没有指向教室表的链接并具有特定类型ID的记录。所以我正在跑...

delete from access_code where id in (select q.* from (select a.id FROM access_code a left join lyc_classroom c on a.id = c.access_code_id where a.access_code_type = 2 and c.access_code_id is null) q);

需要很长时间。有没有更快的方法来执行上述查询?

1 个答案:

答案 0 :(得分:3)

您不需要子查询。使用delete ... join语法

delete a 
from access_code a
left join lyc_classroom c on a.id = c.access_code_id
where a.access_code_type = 2 and c.access_code_id is null