Re: Mejorar Rendimiento

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Ubaldo Taladriz <utaladriz(at)exe(dot)cl>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Mejorar Rendimiento
Date: 2004-07-13 05:16:22
Message-ID: 20040713051622.GC7376@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Tue, Jul 13, 2004 at 12:49:08AM -0400, Alvaro Herrera wrote:

> On Tue, Jul 13, 2004 at 12:35:26AM -0400, Ubaldo Taladriz wrote:

> > Corrijanme si estoy equivocado, pero no existe indice alguno que pueda
> > ayudarlo con consultas del estilo like '%asdasdasd%'
> > Este tipo de consultas van a significar un full scan (Busqueda
> > secuencial sobre todos los registros de la tabla)
>
> Esa clase de indices si existen. Lo mas trivial son los indices
> invertidos, que para cada palabra de un "diccionario" tienen punteros
> hacia todos los documentos que contienen dicha palabra; hay versiones
> mas elaboradas, como indexar trigramas.

Correccion ... un indice invertido no sirve para esto, porque no hay
medio de saber donde estan los bordes de las palabras. Pero para una
consulta del estilo '%askdjhaskd%' se puede usar un arbol de sufijos, un
arreglo de sufijos o un trie de sufijos (y probablemente otros)

No se si en Postgres se implementa alguna de estas cosas. tsearch2 creo
que es un trie de sufijos o alguna estructura parecida (solo que ellos
hacen preprocesamiento de los documentos y de la consulta, como
stemming, eliminacion de stopwords, etc)

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"When the proper man does nothing (wu-wei),
his thought is felt ten thousand miles." (Lao Tse)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Felipe Fernandez 2004-07-13 06:10:25 Re: Mejorar Rendimiento
Previous Message Felipe Fernandez 2004-07-13 05:11:31 Re: Mejorar Rendimiento