Sobes.tech
Senior

Co dělá VACUUM v PostgreSQL a proč se objevují mrtvé řádky?

sobes.tech AI

Odpověď od AI

V PostgreSQL při aktualizaci nebo odstranění řádků staré verze řádků nejsou okamžitě odstraněny, ale stávají se "mrtvými tuplami" (dead tuples). To souvisí s MVCC (víceverzová kontrola souběhu), která zajišťuje izolaci transakcí. Mrtvé řádky zabírají místo a mohou zpomalit výkon databáze.

Příkaz VACUUM tyto mrtvé řádky vyčistí, uvolní místo a zabrání růstu tabulek a indexů. Existuje běžný VACUUM, který pouze označí prostor jako volný, a VACUUM FULL, který tabulku dále stlačí a sníží její fyzickou velikost.

Příklad:

VACUUM moje_tabulka;

Tímto způsobem VACUUM udržuje výkon a zabraňuje nadměrnému využívání diskového prostoru.