¿Cómo evitar el registro de escritura anticipada en una sola tabla en PostgreSQL?

StackOverflow https://stackoverflow.com/questions/38090

  •  09-06-2019
  •  | 
  •  

Pregunta

Estoy considerando el envío de troncos de Registros de escritura anticipada (WAL) en PostgreSQL para crear una base de datos en espera activa.Sin embargo, tengo una tabla en la base de datos que recibe una gran cantidad de INSERTAR/ELIMINAR cada día, pero no me importa proteger los datos que contiene.Para reducir la cantidad de WAL producidos, me preguntaba: ¿Hay alguna manera de evitar que cualquier actividad en una tabla se registre en los WAL?

¿Fue útil?

Solución

Desgraciadamente no creo que lo haya.El registro WAL opera en el nivel de página, que es mucho más bajo que el nivel de tabla y ni siquiera sabe qué página contiene datos de qué tabla.De hecho, los archivos WAL ni siquiera saben qué páginas pertenecen a qué base de datos.

Podría considerar mover su tabla de alta actividad a una instancia completamente diferente de PostgreSQL.Esto parece drástico, pero no se me ocurre otra forma de evitar que esa actividad aparezca en sus archivos WAL.

Otros consejos

Me encontré con esta vieja pregunta, que ahora tiene una mejor respuesta.Postgres 9.1 introdujo "Tablas no registradas", que son tablas que no registran sus cambios DML en WAL.Consulte los documentos para obtener más información, pero al menos ahora hay una solución para este problema.

Ver Esperando 9.1 - tablas NO REGISTRADAS por depesz, y el 9.1 documentos.

Para ofrecer una opción a mi propia pregunta.Hay tablas temporales - "las tablas temporales se eliminan automáticamente al final de una sesión o, opcionalmente, al final de la transacción actual (consulte ON COMMIT a continuación)", lo cual creo que no genera WAL.Aun así, esto podría no ser ideal ya que la creación y el diseño de la tabla deberán estar en el código.

yo consideraría memcached para casos de uso como este.Incluso puedes distribuir la carga entre un montón de máquinas baratas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top