At 19:53 18/05/2009, Silvio Quadri wrote:
El día 18 de mayo de 2009 11:36, BhEaN <lis...@bhean.com> escribió:
> Hola a todos,
>
> Tengo una BBDD en PostgreSQL que va a contener varios millones de registros,
> por lo que necesito optimizar las consultas lo máximo posible...
>
> Mi problema es que, a la hora de crear los indices, no puedo crear un indice > (tipo BTREE) en una de las columnas, porque algunos de los registros que hay
> en ella tienen una longitud mayor a la que permite el indice (creo recordar
> que 2000 y pico... no demasiado...)


En el 100% los casos, un índice de 2000 caracteres es un índice inútil
(para Postgres y para cualquier DBMS)
Dependiendo de la solución que quieras implementar, como en otros
mails se dice, hay que usar índice parcial o una solución "Full text
search". También, si la búsqueda es exacta, podés implementar un
índice HASH programado a manopla, que no es muy difícil.

Puedes comprimir el texto. En tiempo es similar a hacer un hash pero tendras una correspondencia 1:1 entre el texto metido y el indice. Ademas podras hacer comparaciones y aplicar metricas (una simple resta te puede decir si dos entradas son similares y cuanto). Puedes usar tanto un huffman, arith coder o directamente un zip sobre los 2KB de texto u otro algoritmo de compresion sin perdida.

Saludos!
Silvio

---------------------------------
Warning!!! Lemmings inside!!!
--
TIP 5: ¿Has leído nuestro extenso FAQ?
        http://www.postgresql.org/docs/faqs.FAQ.html

Responder a