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.