Skip site navigation (1) Skip section navigation (2)

Re: CONSEJO tablas grandes

From: "Guido Barosio" <gbarosio(at)gmail(dot)com>
To: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: "Gabriel Ferro" <gabrielrferro(at)yahoo(dot)com(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: CONSEJO tablas grandes
Date: 2008-11-26 00:38:27
Message-ID: f7f6b4c70811251638o57475dd9xed9ec2c41edcd2c0@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Alguna vez pensaron que tiende a predominar la busqueda por otras
claves distintas a nombres y/o apellidos?

Dicho eso, se justifica crear dos columnas para un pedazo de
informacion que por lo general se consume unificada? ("Nombre,
Apellido").

Tuve esta discusion con David Fetter, si mal no recuerdo el lunes.

gb.-

2008/11/25 Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>:
> 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)
> --
> TIP 1: para suscribirte y desuscribirte, visita http://archives.postgresql.org/pgsql-es-ayuda
>

In response to

Responses

pgsql-es-ayuda by date

Next:From: Marco AntonioDate: 2008-11-26 01:21:05
Subject: Re: CONSEJO tablas grandes
Previous:From: Alvaro HerreraDate: 2008-11-26 00:23:40
Subject: Re: CONSEJO tablas grandes

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group