From: | Volodymyr Kostyrko <c(dot)kworr(at)gmail(dot)com> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org |
Subject: | array can be slow when joining? |
Date: | 2010-08-29 13:18:22 |
Message-ID: | 4C7A5E1E.6050205@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
I don't clearly understand why this happens, but when I try join some
tables using arrays I end up with:
=# explain select count(*) from urls JOIN rules ON urls.tag && rules.tag;
QUERY PLAN
---------------------------------------------------------------------------------------
Aggregate (cost=1356.27..1356.28 rows=1 width=0)
-> Nested Loop (cost=20.33..1354.96 rows=523 width=0)
-> Seq Scan on rules (cost=0.00..1.01 rows=1 width=37)
-> Bitmap Heap Scan on urls (cost=20.33..1347.42 rows=523
width=29)
Recheck Cond: (urls.tag && rules.tag)
-> Bitmap Index Scan on url_tag_g (cost=0.00..20.20
rows=523 width=0)
Index Cond: (urls.tag && rules.tag)
Here tag is text[] with list of tags. Whole select takes 142 ms. It
drops down to 42 ms when I add some conditions that strip result table
to zero length.
What am I missing? Is there any other ways to overlap those ones? Or
should I find "any other way"?
--
Sphinx of black quartz judge my vow.
From | Date | Subject | |
---|---|---|---|
Next Message | Jose Ildefonso Camargo Tolosa | 2010-08-29 15:07:20 | Re: Performance on new 64bit server compared to my 32bit desktop |
Previous Message | Cédric Villemain | 2010-08-28 10:17:50 | Re: write barrier question |