0
select count(*) from user 
 where userid not in (select userid from ship where status in ('1','0')) 
   and field='web';

这个简单的语句似乎运行了很长时间,我该如何更改 sql 以便它可以运行得更快?谢谢。

4

1 回答 1

1

处理大量数据时最好避免 IN/NOT IN。假设您的用户 ID 列被索引,这样的事情可能会更快:

SELECT COUNT(DISTINCT u.userid)
    FROM user u
    LEFT JOIN ship s ON u.userid=s.userid AND s.status IN ('1', '0')
WHERE s.userid IS NULL AND field='web'
于 2013-05-16T06:50:17.227 回答