Muy buenos días y bienvenidos a una nueva entrada de nuestro blog especializado en PostgreSQL. Hoy queremos hablar del particionamiento declarativo. ¿Has oído hablar de él? A lo largo de esta entrada te explicaremos qué es y cuáles son sus características principales.
A partir de la versión 10 de Postgres se implementa un nuevo sistema de particionado de tablas, para diferenciarlo de la herencia de tablas lo han llamado particionamiento declarativo. Éste nuevo sistema para particionar tablas funciona mucho mejor ya que resuelve el mayor inconveniente de la anterior forma de particionar las tablas; la herencia de tablas.
Desde casi los inicios en PostgreSQL se añadieron algunas funcionalidades de orientación a objetos, con esto se permitía realizar la herencia de objetos, más conocido como el particionado de tablas. La herencia de tablas funciona bien y es sencillo subdividir una tabla padre en otras tablas hijas, pero presenta un inconveniente que se debe de resolver de forma manual. Estamos hablando de la transparencia en las escrituras; insertar nuevos valores. Para resolver este inconveniente hay que actuar de forma manual creando unas reglas (rules) para que, cuando se inserte un valor, éste nuevo dato automáticamente se redirija y se inserte en la tabla hija correspondiente.
Veamos el punto fuerte más importante y el punto flojo más destacable de este nuevo sistema de particionamiento declarativo con respecto la anterior herencia de tablas.
Características destacables del Sistema de particionamiento declarativo.
- La mayor ventaja que ofrece el particionamiento declarativo es que se logra la transparencia a la hora de insertar nuevos valores en nuestra tabla particionada, con esto todos los INSERT que se realicen en la tabla principal, automáticamente se redirijan a la partición correspondiente sin tener que realizar ninguna acción manual.
- La desventaja más destacable que presenta por el momento este nuevo sistema de particionamiento de tablas es por la definición de la partición, es decir, el criterio que vamos a seguir para particionar nuestra tabla. Actualmente sólo permite particionar por rango o por lista (enumerados).
Próximas mejoras del sistema de particionamiento declarativo.
Una de las características que se está centrando en mejorar el Grupo de Desarrollo Global de PostgreSQL (PGDG) en PostgreSQL 11 es éste particionamiento declarativo. En esta nueva versión que esta en desarrollo implementan otro criterio para particionar nuestra tabla, Hash key.
También habilita la posibilidad de soportar constraint Primary Key, Foreing Key, índices y triggers en las particiones de una tabla particionada con el sistemas de particionamiento declarativo.
Estaremos muy al pendientes de la evolución de este nuevo sistema de particionamiento. Si hay novedades destacables, las tendrás disponibles en este blog. Te recordamos también que en esta entrada hablamos del particionamiento clásico en PostgreSQL, en dónde enseñamos de forma práctica cómo particionar una tabla.
¡Te esperamos en nuestra próxima entrada!