加快我的简单sql

加快我的简单sql,sql,postgresql,postgresql-performance,Sql,Postgresql,Postgresql Performance,这个简单的语句似乎运行了很长时间,如何更改sql以使其运行得更快?谢谢。处理大量数据时,最好避免使用IN/NOT IN。假设您的userid列已编制索引,类似这样的操作可能会更快: select count(*) from user where userid not in (select userid from ship where status in ('1','0')) and field='web'; 我不认为对查询进行任何更改会有帮助,但用户ID和字段上的索引会有帮助。请阅

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

处理大量数据时,最好避免使用IN/NOT IN。假设您的userid列已编制索引,类似这样的操作可能会更快:

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

我不认为对查询进行任何更改会有帮助,但用户ID和字段上的索引会有帮助。请阅读并编辑您的问题,包括解释分析等。此外,最好避免不在;而是尝试不存在从中选择1。。。哪里
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'