Re: Búsqueda indexada de substrings

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: dario_d_s(at)unitech(dot)com(dot)ar
Cc: Guillermo Schulman <gschulman_ml(at)yahoo(dot)com(dot)ar>, lista de correo de postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Búsqueda indexada de substrings
Date: 2005-08-05 21:48:25
Message-ID: 20050805214825.GA14653@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, Aug 05, 2005 at 05:35:36PM -0400, dario_d_s(at)unitech(dot)com(dot)ar wrote:
> okey, perdì el mail q estaba redactando, asi q resumo.
>
> Esa cadena es muy corta. Amsterdam, amsa... depende de tu juego de datos.
>
> select * from tabla where campo % 'ams' and campo ilike '%ams%'

Duh, era tan obvio y no se me ocurrio :-P

> correrlo con un explain adelante para asegurarte que primero usa el
> índice y después filtra por el ilike.
>
> con el % forzas el uso de índice, y esa cadena es muy corta, es
> probable que no sea muy selectiva (i registros + i reg * seeks en el
> índice) y que tengas peor performance que con un ilike pelado (j
> registros, no mucho más grande que i). Depende de tu hardware y los
> costos configurados en el planeador de consultas)

Es cierto que la cadena es corta, pero dado el indice por trigramas no
deberia tener problemas. Sobre todo si la tabla con texto a buscar es
suficientemente grande, cosa que probablemente se cumple, porque de lo
contrario el recorrido secuencial seria muy rapido.

Lo malo de usar el ilike pelado, es que es imposible usar ninguna clase
de indice. Cuando la tabla es muy grande, no es una aproximacion
factible de usar.

--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
"La experiencia nos dice que el hombre peló millones de veces las patatas,
pero era forzoso admitir la posibilidad de que en un caso entre millones,
las patatas pelarían al hombre" (Ijon Tichy)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario Jiménez Carrasco 2005-08-05 21:49:45 Re: [Python-es] pyPgSQL en windows...
Previous Message Grover Navia 2005-08-05 21:36:15 RE: visual basic y postgresql