Senior
Čo sa deje fyzicky s odstránenými záznamami v PostgreSQL? Kedy sú odstránené?
sobes.tech AI
Odpoveď od AI
V PostgreSQL-u, keď odstránite záznam, nie je okamžite fyzicky odstránený z tabuľky. Namiesto toho je záznam označený ako odstránený (mŕtvy tuple), ale zostáva v tabuľke na zabezpečenie konzistencie transakcií a možnosti vrátenia.
Skutočné odstránenie sa vykonáva počas procesu vacuumovania (VACUUM), ktorý uvoľní miesto obsadené takýmito "mŕtvymi" tuplemi a sprístupní ho na opätovné použitie.
Preto existujú odstránené záznamy v tabuľke až do vykonania VACUUM. To pomáha predísť problémom s konkurenčným prístupom a zabezpečuje MVCC (viaceré verzie riadenia prístupu).
Príklad príkazu na spustenie vacuum:
VACUUM;
Alebo pre agresívnejšie uvoľnenie miesta:
VACUUM FULL;