diff options
author | Bruce Momjian <bruce@momjian.us> | 2002-10-10 03:15:19 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2002-10-10 03:15:19 +0000 |
commit | 52f6918c283ac2a9495aa72e9ae414dffe6cbd74 (patch) | |
tree | 1fab1ca5495a9b0c0ce9ac587226b65fa0527531 /doc/FAQ | |
parent | 5aa7849e1bdd5d2674a9af78ad09fdd71204b9ac (diff) |
Update IN/EXISTS item.
Diffstat (limited to 'doc/FAQ')
-rw-r--r-- | doc/FAQ | 15 |
1 files changed, 9 insertions, 6 deletions
@@ -1,7 +1,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL - Last updated: Mon Sep 30 23:28:35 EDT 2002 + Last updated: Wed Oct 9 23:14:53 EDT 2002 Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) @@ -998,18 +998,21 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); 4.22) Why are my subqueries using IN so slow? Currently, we join subqueries to outer queries by sequentially - scanning the result of the subquery for each row of the outer query. A - workaround is to replace IN with EXISTS: + scanning the result of the subquery for each row of the outer query. + If the subquery returns only a few rows and the outer query returns + many rows, IN is fastest. To speed up other queries, replace IN with + EXISTS: SELECT * FROM tab - WHERE col1 IN (SELECT col2 FROM TAB2) + WHERE col IN (SELECT subcol FROM subtab) to: SELECT * FROM tab - WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) + WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col) - We hope to fix this limitation in a future release. + For this to be fast, subcol should be an indexed column. We hope to + fix this limitation in a future release. 4.23) How do I perform an outer join? |