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