Re: [pgsql-es-ayuda] [pgsql-es-fomento] sobre particionado de tablas

From: Jaime Casanova <jaime(at)2ndquadrant(dot)com>
To: Arcel Labrada Batista <alabradab(at)uci(dot)cu>
Cc: CarloS Sing Ramos <carlossing(at)gmail(dot)com>, Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>, arpug <arpug(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] [pgsql-es-fomento] sobre particionado de tablas
Date: 2013-10-14 18:38:41
Message-ID: CAJKUy5h_AwC3Nv9t6=65Y9T8F1ZeJjk6wxzReS9keTYP9Lb+7Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: arpug pgsql-es-ayuda pgsql-es-fomento

2013/10/14 Arcel Labrada Batista <alabradab(at)uci(dot)cu>:
>

Saludos,

Primero que nada, no hagas cross-posting, al menos la lista
"pgsql-es-fomento <pgsql-es-fomento(at)postgresql(dot)org>" no es ni
remotamente indicada para este mail

> gracias Carlos pero esto ya lo habia consultado, mi problema es que quiero
> hacer el particionado por cantidad de registros, mi tabla no tiene ningun
> campo numerico que podria utilizar para esto y no puedo ponerlo tampoco, me
> gustaria saber si existe alguna manera de hacer el particionado de manera
> dinamica teniendo en cuanta la cantidad de registros en las particiones, por
> ejemplo, quiero que cada una de mis particiones tenga 1 millon de registros
> solamente,

y que crees que vas a ganar con esto? ese esquema de particionamiento
que sugieres solo hará las consultas mas lentas con el paso del tiempo
y no te dará ninguna ganancia.

piensalo, solo hay dos razones para particionar:

- menos registros a consultar
- menor trabajo de administración

la primera razón solo la puedes lograr si tienes la seguridad de tener
registros que consultas con mucha frecuencia, agrupados en las mismas
particiones de modo que puedas "ignorar" las particiones donde sabes
que no habrán registros que quieres. pero si tu única condición para
particionar es el número de registros significa que cada vez tendrás
que consultar mas particiones no menos (porque no hay una lógica
detras del particionado por lo que postgres tendrá que chequear
siempre todas las particiones).

la segunda razón tiene que ver con el hecho de que eventualmente
querras eliminar registros viejos (sacar un backup y sacar los datos,
con un DROP TABLE de la particion, hasta que en realidad necesites, o
ser capaz de ignorar particiones que no cambian en el backup). sin
embargo, si no sabes que registros hay en cada partición, no podrás
saber si se modifico o no... lo que significa que tendrás que sacar
backups de todo y jamás podras eliminar información vieja mas que con
un DELETE.

Y espero que no quieras exactitud en el número de registros por
partición pues el manejo de concurrencia de postgres no te dejará ser
exacto en eso a menos que no te importe el rendimiento de tu sistema.

--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Phone: +593 4 5107566 Cell: +593 987171157

In response to

Responses

Browse arpug by date

  From Date Subject
Next Message Arcel Labrada Batista 2013-10-14 18:46:47 Re: [pgsql-es-ayuda] [pgsql-es-fomento] sobre particionado de tablas
Previous Message Martín Marqués 2013-10-14 18:26:03 Re: [arpug] sobre particionado de tablas

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Arcel Labrada Batista 2013-10-14 18:46:47 Re: [pgsql-es-ayuda] [pgsql-es-fomento] sobre particionado de tablas
Previous Message Martín Marqués 2013-10-14 18:26:03 Re: [arpug] sobre particionado de tablas

Browse pgsql-es-fomento by date

  From Date Subject
Next Message Arcel Labrada Batista 2013-10-14 18:46:47 Re: [pgsql-es-ayuda] [pgsql-es-fomento] sobre particionado de tablas
Previous Message Martín Marqués 2013-10-14 18:26:03 Re: [arpug] sobre particionado de tablas