Sobes.tech
Senior

Mida teeb VACUUM PostgreSQL-is ja miks ilmuvad surnud read?

sobes.tech AI

Vastus AI-lt

PostgreSQL-is, kui te uuendate või kustutate ridu, ei eemaldata vanu versioone kohe, vaid need muutuvad "surnud tuple'iteks" (dead tuples). See on seotud MVCC-ga (Mitme Versiooni Järjepidevuse Kontroll), mis tagab tehingute isolatsiooni. Surmased read hõivavad ruumi ja võivad aeglustada andmebaasi tööd.

VACUUM käsk puhastab need surnud read, vabastab ruumi ja takistab tabelite ja indeksite kasvu. On tavaline VACUUM, mis lihtsalt märgib ruumi vabaks, ja VACUUM FULL, mis täiendavalt tihendab tabelit, vähendades selle füüsilist suurust.

Näide:

VACUUM minu_tabel;

Nii säilitab VACUUM jõudluse ja takistab liigset kettaruumi kasutust.