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