查询速度慢,查找没有关系的所有记录

时间:2018-06-27 12:07:38

标签: mysql left-join relationship not-exists

我正在尝试查找所有没有具有任何users的{​​{1}}。

到目前为止,我已经尝试了以下方法:

orders

我也尝试了以下方法:

select * from `users` where not exists 
(select * from `orders` where `users`.`id` = `orders`.`user_id`) 

但是,两者都是非常慢的查询。大约有5000个客户和30,000多个订单。有更有效的方法吗?

1 个答案:

答案 0 :(得分:1)

您需要将子查询限制为仅查看user_id。另外,请确保已为user_id编制索引。

Alter table orders add index(user_id)

Select * from users where id NOT IN(select user_id from 
orders)