我有2个表:twitter_followers
和twitter_friends
。两个表都有很多列(id
,user_id
,twitter_id
等。对于单个user_id
,两个表中的行数可以超过100000条记录。
我想通过以下方式从twitter_friends
user
检索记录:
SELECT *
FROM twitter_friends
WHERE user_id=1
AND twitter_id NOT IN (SELECT twitter_id FROM twitter_followers WHERE user_id=1)
这个查询适用于少量数据,但任何人都可以帮助我获取大量数据(最好是在几秒钟内)?
答案 0 :(得分:0)
MySql的子查询性能非常糟糕。我建议使用JOIN语句。
像:
Select Friends.*, Followers.twitter_id
from twitter_friends as Friends
LEFT JOIN twitter_followers as Followers
on Friends.USER_ID = Followers.USER_ID
where friends.user_id=1 AND followers.twitter_id is null;