Re: sobre particionado de tablas

From: Emanuel Calvo <postgres(dot)arg(at)gmail(dot)com>
To: Arcel Labrada Batista <alabradab(at)uci(dot)cu>
Cc: arpug <arpug(at)postgresql(dot)org>, Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: sobre particionado de tablas
Date: 2013-10-25 17:59:50
Message-ID: CAGHEX6arRxs3dDEs99d9_6OO-vQ0veH_WOCEMvCNhEAcwJmzsg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: arpug pgsql-es-ayuda pgsql-es-fomento

El 14 de octubre de 2013 09:53, Arcel Labrada Batista
<alabradab(at)uci(dot)cu>escribió:

> Buenos días listeros,
>
> estuve buscando como realizar particiones de tablas para tablas muy
> grandes pero no he encontrado nada que me permita hacer particiones por
> cantidad de registros, he visto que se hacen por fechas, pero realmente me
> gustaria para hacerlos por cantidad de registros en las tablas que heredan,
> tengo la disyuntiva además que no puedo agragar un nuevo campo a las tablas
> donde tenga un número secuencial por donde podria ser muy fácil controlar
> esa cantidad de registros, ¿conocen alguna manera de hacer esto?, Saludos y
> gracias de antemano
>
>
En pricipio hacer esto no sería tan difícil. Recuerda que el particionado
se hace a través de un disparador, por lo que puedes controlar
que escribes antes de escribirlo. Este podría tener una secuencia que
cuente la cantidad de registros para la partición actual y se resetee
cuando se cumpla el límite, luego
para el siguiente insert puedes crear una nueva partición teniendo la
secuencia a 0.

Sino, la idea más fácil sería agregar un particionado por clave subrogada
(id) secuencial (range partitioning) Ej: particion1 (id between 1 and 1000,
part2 1001 and 2000). El id
estaría basado en una secuencia y/o en una hermosísima tabla de 1 campo/1
row. Más de uno estará a punto de tirar un zapato ahora mismo.

Ahora bien. Para que podría servir esto? Sencillo. Seguro haces muchas
consultas sobre id, correcto? Bueno, la verdad es que en ese caso el
particionado no ayuda. El acceso
por índice se encarga de esto. El particionado se usa más que nada para
manejar fácilmente particiones históricas o busquedas por rango grandes
(que evitan caer en un
full scan masivo a toda la tabla si quieres leer 1 mes, por ejemplo).

--
--
Emanuel Calvo

In response to

Browse arpug by date

  From Date Subject
Next Message Mariano Reingart 2013-10-25 18:51:49 Re: PgDay Argentina 2013: colecta de fondos
Previous Message Mariano Reingart 2013-10-19 14:28:08 Re: PgDay Argentina 2013: colecta de fondos

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Pedro PG 2013-10-25 19:45:49 SQLCA en Postgres 9.X
Previous Message Jaime Casanova 2013-10-25 17:41:03 Re: Roles como usuarios de programa compilado

Browse pgsql-es-fomento by date

  From Date Subject
Next Message Alvaro Herrera 2013-10-25 21:29:10 Re: Errores detallados
Previous Message Mariano Reingart 2013-10-19 18:44:39 PgDay Argentina 2013: colecta de fondos