Senior
Mis juhtub füüsiliselt kustutatud kirjetega PostgreSQL-is? Millal need kustutatakse?
sobes.tech AI
Vastus AI-lt
PostgreSQL-s, kui teete kirje kustutamise, ei eemaldata seda kohe füüsiliselt tabelist. Selle asemel märgitakse kirje kui kustutatud (surnud tuple), kuid see jääb tabelisse, et tagada transaktsioonide järjepidevus ja võimalus tagasi pöörduda.
Faktiline kustutamine toimub vacuuming (VACUUM) protsessi ajal, mis vabastab selle "surnud" tuple'ide poolt hõivatud ruumi ja muudab selle uuesti kasutamiseks saadavaks.
Seetõttu eksisteerivad kustutatud kirjed tabelis kuni VACUUM-i täitmiseni. See aitab vältida konkurentsi juurdepääsu probleeme ja tagab MVCC (mitme versiooni juurdepääsukontrolli).
Näide käsklusest vacuumi alustamiseks:
VACUUM;
Või agressiivsemaks ruumi vabastamiseks:
VACUUM FULL;