Re: CONSEJO tablas grandes

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)

In response to

Responses

Browse pgsql-es-ayuda by date

  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