| From: | Richard Huxton <dev(at)archonet(dot)com> |
|---|---|
| To: | "Thomas H(dot)" <me(at)alternize(dot)com> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: planer picks a bad plan (seq-scan instead of index) |
| Date: | 2006-11-09 09:22:15 |
| Message-ID: | 4552F347.3050708@archonet.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Thomas H. wrote:
> --------------------
> SELECT * FROM shop.dvds
> LEFT JOIN oldtables.movies ON mov_id = dvd_mov_id
> LEFT JOIN shop.data_soundmedia ON sm_info_ean = dvd_ean
> WHERE (lower(mov_name) LIKE '%superman re%' OR lower(dvd_name) like
> '%superman re%' OR lower(dvd_edition) LIKE '%superman re%')
> --------------------
Try putting your conditions as part of the join:
SELECT * FROM shop.dvds
LEFT JOIN
oldtables.movies
ON
mov_id = dvd_mov_id
AND (
lower(mov_name) LIKE '%superman re%'
OR lower(dvd_name) like '%superman re%'
OR lower(dvd_edition) LIKE '%superman re%'
)
LEFT JOIN shop.data_soundmedia ON sm_info_ean = dvd_ean
I'd also be tempted to look at a tsearch2 setup for the word searches.
--
Richard Huxton
Archonet Ltd
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Richard Huxton | 2006-11-09 09:24:29 | Re: RULE - special variables? |
| Previous Message | Alban Hertroys | 2006-11-09 09:06:33 | Re: planer picks a bad plan (seq-scan instead of index) |