Sobes.tech
Senior

Ce face VACUUM în PostgreSQL și de ce apar rânduri moarte?

sobes.tech AI

Răspuns de la AI

În PostgreSQL, atunci când actualizați sau ștergeți rânduri, versiunile vechi ale rândurilor nu sunt eliminate imediat, ci devin "tupluri moarte" (dead tuples). Acest lucru este legat de MVCC (Controlul Concurenței Multi-Versiune), care asigură izolarea tranzacțiilor. Rândurile moarte ocupă spațiu și pot încetini performanța bazei de date.

Comanda VACUUM curăță aceste rânduri moarte, eliberează spațiu și previne creșterea tabelelor și indexurilor. Există un VACUUM obișnuit, care marchează pur și simplu spațiul ca fiind liber, și un VACUUM FULL, care comprimă suplimentar tabelul, reducând dimensiunea sa fizică.

Exemplu:

VACUUM tabelul_meu;

Astfel, VACUUM menține performanța și previne utilizarea excesivă a spațiului pe disc.