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