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)
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 |