From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | arnaud(dot)listes(at)codata(dot)eu |
Cc: | Richard Huxton <dev(at)archonet(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: UPDATE with JOIN not using index |
Date: | 2010-03-16 14:37:28 |
Message-ID: | 8374.1268750248@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Arnaud Lesauvage <arnaud(dot)listes(at)codata(dot)eu> writes:
> First query :
> "Merge Join (cost=699826.38..704333.80 rows=13548 width=836)"
> " Merge Cond: (((c.rue)::text = (r.rue)::text) AND ((c.codesite)::text
> = (r.codesite)::text))"
> " -> Sort (cost=696320.21..697701.07 rows=552343 width=823)"
> " Sort Key: c.rue, c.codesite"
> " -> Seq Scan on cellules c (cost=0.00..443520.43 rows=552343
> width=823)"
> " -> Sort (cost=3504.88..3596.96 rows=36833 width=43)"
> " Sort Key: r.rue, r.codesite"
> " -> Seq Scan on rues r (cost=0.00..711.33 rows=36833 width=43)"
> Second query :
> "Seq Scan on cellules c (cost=0.00..5018080.39 rows=552343 width=823)"
> " SubPlan 1"
> " -> Index Scan using idx_rues_ruecodesite on rues r
> (cost=0.00..8.28 rows=1 width=13)"
> " Index Cond: (((rue)::text = ($1)::text) AND ((codesite)::text
> = ($0)::text))"
Please notice that the planner thinks the second plan is much more
expensive than the first. I think you will find that it's right.
Using an index is not always the best way to do a query.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Arnaud Lesauvage | 2010-03-16 14:50:31 | Re: UPDATE with JOIN not using index |
Previous Message | Bruce Momjian | 2010-03-16 14:27:19 | Re: hardware for a server |