PostgreSQL Performance & Query Optimization · Lezione

Configurazione e ottimizzazione di Autovacuum

Apprenda a configurare e ottimizzare il demone autovacuum per ottenere prestazioni e manutenzione ottimali.

Lezione 2 di 411 passaggi

Configurazione e ottimizzazione di Autovacuum è una lezione PostgreSQL Performance & Query Optimization gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PostgreSQL Performance & Query Optimization, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PostgreSQL Performance & Query Optimization include 4 lezioni in totale.

Ottimizzi il database con Autovacuum

Benvenuto nella configurazione dell'autovacuum di PostgreSQL! Dopo aver appreso MVCC e VACUUM, vediamo come gestire questo processo in background fondamentale.

Autovacuum recupera automaticamente spazio e aggiorna le statistiche, prevenendo problemi di prestazioni come la frammentazione delle tabelle e le query lente.

Attività automatiche di Autovacuum

Il demone autovacuum viene eseguito in background e monitora costantemente il database per individuare le tabelle che richiedono interventi. Esegue due operazioni principali:

  • VACUUM: recupera lo spazio occupato dalle righe "morte", rendendolo disponibile per i nuovi dati.
  • ANALYZE: aggiorna le statistiche delle tabelle, aiutando il pianificatore delle query a scegliere i piani di esecuzione più efficienti.

Dove trovare le impostazioni di Autovacuum

La maggior parte delle impostazioni di autovacuum si trova nel file di configurazione di PostgreSQL, generalmente denominato postgresql.conf. È inoltre possibile modificarle a livello di database o di tabella.

Ricordi di riavviare PostgreSQL o ricaricare la configurazione affinché le modifiche abbiano effetto!

SHOW config_file;

Attivare o disattivare Autovacuum

L'impostazione di base è autovacuum. Di solito è abilitata per impostazione predefinita e, nella maggior parte dei sistemi di produzione, dovrebbe essere lasciata così!

Disabilitarla richiede l'esecuzione manuale di vacuum, che può essere facilmente dimenticata e causare gravi problemi di prestazioni.

ALTER SYSTEM SET autovacuum = on;

Quando Autovacuum esegue il vacuum delle tabelle

Autovacuum attiva un VACUUM quando si accumula un determinato numero di righe morte. Questo comportamento è controllato da due parametri:

  • autovacuum_vacuum_scale_factor: una percentuale delle dimensioni della tabella, ad esempio 0.2 per il 20%.
  • autovacuum_vacuum_threshold: il numero minimo fisso di righe morte.

Il vacuum viene attivato quando (dead_rows > autovacuum_vacuum_threshold + table_rows * autovacuum_vacuum_scale_factor).

Calcolo delle soglie di attivazione del vacuum

Supponiamo che autovacuum_vacuum_threshold sia 50 e che autovacuum_vacuum_scale_factor sia 0.2 (20%). Per una tabella con 1000 righe, il vacuum verrà attivato quando:

  • dead_rows > 50 + (1000 * 0.2)
  • dead_rows > 50 + 200
  • dead_rows > 250

È possibile modificare questi valori per le tabelle molto attive o molto statiche.

Quando Autovacuum analizza le tabelle

Analogamente al vacuum, autovacuum attiva un'operazione ANALYZE in base a una soglia:

  • autovacuum_analyze_scale_factor: una percentuale delle dimensioni della tabella.
  • autovacuum_analyze_threshold: il numero minimo fisso di righe modificate.

L'analisi garantisce che il pianificatore delle query disponga di statistiche aggiornate per creare piani ottimali, prevenendo le query lente.

Frequenza e concorrenza di Autovacuum

Altri due parametri importanti:

  • autovacuum_naptime: il tempo di attesa di autovacuum tra i controlli sui database, ad esempio '1min'. Un naptime più breve comporta controlli più frequenti.
  • autovacuum_max_workers: il numero massimo di processi autovacuum che possono essere eseguiti contemporaneamente su tutti i database. Un numero maggiore di worker consente di eseguire più operazioni di vacuum e analisi simultaneamente.

Personalizzare Autovacuum per tabella

A volte una tabella può richiedere impostazioni di autovacuum diverse da quelle predefinite globali. Ad esempio, una tabella molto grande e aggiornata di frequente potrebbe trarre vantaggio da un vacuum più aggressivo.

È possibile sovrascrivere la maggior parte dei parametri di autovacuum per singole tabelle utilizzando ALTER TABLE.

ALTER TABLE my_large_table SET (autovacuum_vacuum_scale_factor = 0.05);

Verifica rapida su Autovacuum

Autovacuum contribuisce a mantenere integro il database. Verifichiamo la Sua comprensione del modo in cui decide quando eseguire il vacuum di una tabella.

Riepilogo della configurazione di Autovacuum

Ottimo lavoro! Ha imparato a configurare e ottimizzare il demone autovacuum di PostgreSQL.

  • Autovacuum esegue automaticamente VACUUM e ANALYZE.
  • I parametri principali controllano quando viene eseguito, tramite il fattore di scala e la soglia, e con quale frequenza, tramite naptime.
  • È possibile personalizzare le impostazioni globalmente in postgresql.conf o per singola tabella utilizzando ALTER TABLE.

Una corretta configurazione di autovacuum è essenziale per mantenere le prestazioni del database e prevenire la frammentazione.

Gratis per iniziare

Impara SQL con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
22
Lezioni
88

Domande Frequenti

La lezione «Configurazione e ottimizzazione di Autovacuum» è gratuita?

Sì — il testo completo di «Configurazione e ottimizzazione di Autovacuum» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PostgreSQL Performance & Query Optimization, passa a CoddyKit PRO. Il corso PostgreSQL Performance & Query Optimization include 4 lezioni in totale.

Cosa imparerò in «Configurazione e ottimizzazione di Autovacuum»?

Apprenda a configurare e ottimizzare il demone autovacuum per ottenere prestazioni e manutenzione ottimali. Eserciti PostgreSQL Performance & Query Optimization con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare PostgreSQL Performance & Query Optimization?

Non è richiesta alcuna esperienza precedente. PostgreSQL Performance & Query Optimization su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Configurazione e ottimizzazione di Autovacuum»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione PostgreSQL Performance & Query Optimization?

Sì. Ogni lezione PostgreSQL Performance & Query Optimization include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Comprendere MVCC e VACUUM
  2. Configurazione e ottimizzazione di Autovacuum
  3. Impatto dei livelli di isolamento delle transazioni
  4. Prevenire il wraparound degli ID di transazione
← Torna a PostgreSQL Performance & Query Optimization