Senior
Čo robí VACUUM v PostgreSQL a prečo sa objavujú mŕtve riadky?
sobes.tech AI
Odpoveď od AI
V PostgreSQL, keď aktualizujete alebo odstránite riadky, staré verzie riadkov sa neodstraňujú okamžite, ale stávajú sa "mŕtvymi tuplemi" (dead tuples). To súvisí s MVCC (Multi-Version Concurrency Control), ktorá zabezpečuje izoláciu transakcií. Mŕtve riadky zaberajú miesto a môžu spomaliť výkon databázy.
Príkaz VACUUM vyčistí tieto mŕtve riadky, uvoľní miesto a zabráni rastu tabuliek a indexov. Existuje bežný VACUUM, ktorý iba označí priestor ako voľný, a VACUUM FULL, ktorý ďalej stlačí tabuľu a zníži jej fyzickú veľkosť.
Príklad:
VACUUM moja_tabulka;
Týmto spôsobom VACUUM udržiava výkon a zabraňuje nadmernému využívaniu diskového priestoru.