Re: Best Fit SQL query statement

Поиск
Список
Период
Сортировка
От hubert depesz lubaczewski
Тема Re: Best Fit SQL query statement
Дата
Msg-id 20070810225953.GA28341@depesz.com
обсуждение исходный текст
Ответ на Re: Best Fit SQL query statement  ("Fernando Hevia" <fhevia@ip-tel.com.ar>)
Ответы Re: Best Fit SQL query statement  ("Rodrigo De León" <rdeleonp@gmail.com>)
Re: Best Fit SQL query statement  ("Fernando Hevia" <fhevia@ip-tel.com.ar>)
Список pgsql-sql
On Fri, Aug 10, 2007 at 04:40:34PM -0300, Fernando Hevia wrote:
> Found your query is shorter and clearer, problem is I couldn't have it use
> an index. Thought it was a locale issue but adding a 2nd index with
> varchar_pattern_ops made no difference.
> In result, it turned out to be too slow in comparison to the function. Am I
> missing something?
> rd=# explain select prefijo
> rd-#     FROM numeracion
> rd-#     WHERE '3514269565' LIKE prefijo || '%'
> rd-#     ORDER BY LENGTH(prefijo) DESC
> rd-#     LIMIT 1;

unfortunatelly this query will be hard to optimize.
i guess that functional approach will be the fastest, but you can try
with something like this:

select prefijo
from numeracion
where prefijo in (   select substr('3514269565',1,i)   from generate_series(1, length('3514269565')) i
)
order by length(prefijo) desc LIMIT 1;

it should be faster then the previous approach, but it will most
probably not be as fast as function.

depesz

-- 
quicksil1er: "postgres is excellent, but like any DB it requires a
highly paid DBA.  here's my CV!" :)
http://www.depesz.com/ - blog dla ciebie (i moje CV)


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

Предыдущее
От: gherzig@fmed.uba.ar
Дата:
Сообщение: Re: foreign key pointing to diff schema?
Следующее
От: "Rodrigo De León"
Дата:
Сообщение: Re: Best Fit SQL query statement