From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: CONSEJO tablas grandes |
Date: | 2008-11-26 00:23:40 |
Message-ID: | 20081126002340.GR4875@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Gabriel Ferro escribió:
> Maestros, me conecto para pedirles un consejo. Tengo que pasar a
> postgres mas de 20 millones de personas desde varios archivos planos,
> y me salto la duda si es conveniente tener como hasta ahora una tabla
> de personas con clave tipo+numdocumento, una tabla localides y una
> tabla que relaciona ambas (por si la persona tiene varios domicilios..
> la cosa es que no estoy seguro si estar trabajando con tablas tan
> grandes sea bueno, ¿tendre que separar las personas por abecedario o
> por provincias?, ¿lo dejo asi?... les comento que las busquedas luego
> seran com muchos LIKES, es decir que no seran simplemente por
> numdocumento
Con respecto a los LIKEs, ¿qué tipo de LIKEs van a ser? Si separas los
nombres en sus partes lógicas (nombre, apellido paterno, apellido
materno --- supongo que funciona así en tu país; ¿hay alguno en Latam
donde no sea así?) entonces es muy posible que puedas evitar tener que
usar LIKE '%algo'
¿Por qué menciono esto? Simple: porque un índice btree puede contestar
consultas de este tipo
WHERE apellido_pat LIKE 'fer%'
pero no puede contestar una de este otro tipo:
WHERE apellido_pat LIKE '%fer%'
Sin embargo cuando se hacen búsquedas, uno nunca busca desde la mitad
del apellido, sino siempre desde el principio. Así que la primera forma
es suficiente, y por lo tanto con el btree es suficiente. Y eso es bien
rápido.
En cambio si dejas el nombre completo en un solo campo, estás obligado a
poner un % al principio de la cadena de búsqueda, y eso complica mucho
las cosas.
--
Alvaro Herrera http://www.PlanetPostgreSQL.org/
"All rings of power are equal,
But some rings of power are more equal than others."
(George Orwell's The Lord of the Rings)
From | Date | Subject | |
---|---|---|---|
Next Message | Guido Barosio | 2008-11-26 00:38:27 | Re: CONSEJO tablas grandes |
Previous Message | Ernesto Lozano | 2008-11-26 00:23:21 | Re: [pgsql-www] Argentina PUG, Venezuela PUG |