Tabla con particionado y alta cantidad de UPDATE

From: Edwin De La Cruz <edwinspire(at)gmail(dot)com>
To: Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Tabla con particionado y alta cantidad de UPDATE
Date: 2020-10-10 19:48:26
Message-ID: CAKaZx-pWCrYHD81ehq6bQkPzz+M_hTp6hwW8LRXPuhTb5YZ02w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Saludos cordiales.
He seguido la lista desde hace ya bastante tiempo y siempre se aprende
de los aportes que todos hacen.

Tengo una tabla en la cual recibo una transaccionalidad de
aproximadamente 2000 registros por minutos. El inconveniente es que
por cada registro que se inserta se debe hacer un UPDATE en la misma
tabla.

He realizado un particionado por HASH de la tabla en 10 partes, lo
cual me ha funcionado relativamente bien. Sin embargo la aplicación
creció y me veo en la necesidad de separar los datos por "Clientes", y
a su vez particionar estos por meses del año, quedando de la siguiente
manera:

eventos.cliente_001.202001
eventos.cliente_001.202002
eventos.cliente_001.202003
eventos.cliente_001.202004
eventos.cliente_001.202005

eventos.cliente_002.202001
eventos.cliente_002.202002
eventos.cliente_002.202003
eventos.cliente_002.202004
eventos.cliente_002.202005

y así sucesivamente con el resto de clientes y meses. Esto me facilita
hacer un DETACH de las tablas de un cliente que por ejemplo ya no lo
tengo activo pero mantengo su información como respaldo. Igualmente
por cada cliente puedo hacer DETACH de las tablas que contienen datos
de más de un año de una forma muy fácil aprovechando el particionado
de PostgreSQL 10 y manteniendo en "Producción" solo data más actual,
además que me he ahorrado un par de índices.

Lamentablemente con este esquema he visto una reducción notable de la
base de datos, he pasado de una transaccionalidad de 2500 inserts por
minuto a tan solo 500.

No se si alguien se ha enfrentado a un tema similar y me pueda iluminar un poco.

Saludos desde Ecuador.

Mis proyectos de software libre en:
Github - edwinspire

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2020-10-11 05:59:24 Re: Tabla con particionado y alta cantidad de UPDATE
Previous Message Yessica Brinkmann 2020-10-10 05:49:05 Re: Interfaz de usuario del Index Adviser de Gurjeet Singh.