[7.0.3] optimizing a LIKE query ...

Поиск
Список
Период
Сортировка
От The Hermit Hacker
Тема [7.0.3] optimizing a LIKE query ...
Дата
Msg-id Pine.BSF.4.33.0104041156540.81918-100000@mobile.hub.org
обсуждение исходный текст
Ответы Re: [7.0.3] optimizing a LIKE query ...  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-sql
Can someone suggest how to improve the following query, so as to make the
LIKE section operate on the results found by the = one?

SELECT ndict.url_id,ndict.intag FROM ndict,urlWHERE ndict.word_id=-720551816  AND url.rec_id=ndict.url_id  AND
((url.url|| '') LIKE '%http://www.postgresql.org/%%')
 

ndict.word_id=-720551816 returns 5895 records

((url.url || '') LIKE '%http://www.postgresql.org/%%')- returns 138k records

explain shows:

NOTICE:  QUERY PLAN:

Hash Join  (cost=10163.01..26647.09 rows=42 width=12) ->  Index Scan using n_word on ndict  (cost=0.00..16299.52
rows=4180width=8) ->  Hash  (cost=10159.53..10159.53 rows=1390 width=4)       ->  Seq Scan on url  (cost=0.00..10159.53
rows=1390width=4)
 

EXPLAIN


I'm figuring that if I can somehow get the query (using subselects,
maybe?), to have the LIKE part of the query work only on the 6k records
returned by the "=" part of it, the overall results should be faster ...

Possible?


Marc G. Fournier                   ICQ#7615664               IRC Nick: Scrappy
Systems Administrator @ hub.org
primary: scrappy@hub.org           secondary: scrappy@{freebsd|postgresql}.org



В списке pgsql-sql по дате отправления:

Предыдущее
От: Cedar Cox
Дата:
Сообщение: max( bool )?
Следующее
От: Poet/Joshua Drake
Дата:
Сообщение: Re: outer joins