Come impedire la registrazione in anticipo su una sola tabella in PostgreSQL?

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

  •  09-06-2019
  •  | 
  •  

Domanda

Sto valutando la spedizione dei log di Registri di scrittura anticipata (WAL) in PostgreSQL per creare un database warm-standby.Tuttavia ho una tabella nel database che riceve un'enorme quantità di INSERT/DELETE ogni giorno, ma di cui non mi interessa proteggere i dati in essa contenuti.Per ridurre la quantità di WAL prodotti mi chiedevo: esiste un modo per impedire che qualsiasi attività su un tavolo venga registrata nei WAL?

È stato utile?

Soluzione

Purtroppo non credo che ci sia.La registrazione WAL opera a livello di pagina, che è molto più basso del livello di tabella e non sa nemmeno quale pagina contiene i dati di quale tabella.In effetti, i file WAL non sanno nemmeno a quali pagine appartengono Banca dati.

Potresti considerare di spostare la tua tabella ad alta attività in un'istanza completamente diversa di PostgreSQL.Sembra drastico, ma non riesco a pensare ad un altro modo per evitare che quell'attività venga visualizzata nei tuoi file WAL.

Altri suggerimenti

Mi sono imbattuto in questa vecchia domanda, che ora ha una risposta migliore.Postgres 9.1 ha introdotto le "Tabelle non registrate", ovvero tabelle che non registrano le modifiche DML su WAL.Vedi i documenti per maggiori informazioni, ma almeno ora c'è una soluzione per questo problema.

Vedere In attesa della 9.1 - Tabelle UNLOGGED di depesz e il 9.1 documenti.

Per offrire un'opzione alla mia domanda.Ci sono tabelle temporanee - "le tabelle temporanee vengono automaticamente eliminate alla fine di una sessione o, facoltativamente, alla fine della transazione corrente (vedi ON COMMIT di seguito)" - che penso non generi WAL.Anche così, questo potrebbe non essere l'ideale in quanto la creazione e la progettazione della tabella dovranno essere nel codice.

Lo prenderei in considerazione memcached per casi d'uso come questo.Puoi anche distribuire il carico su un gruppo di macchine economiche.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top