我有几个语句可以访问非常大的Postgresql表,即:
SELECT a.id FROM a WHERE a.id IN ( SELECT b.id FROM b ); SELECT a.id FROM a WHERE a.id NOT IN ( SELECT b.id FROM b );
他们中的一些甚至以这种方式访问甚至更多的表。提高性能的最佳方法是什么,我应该切换即加入联接吗?
非常感谢!
JOIN将更加高效,或者您可以使用EXISTS:
SELECT a.id FROM a WHERE EXISTS (SELECT 1 FROM b WHERE b.id = a.id)
子查询最多返回1行。