Sobes.tech
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;