Sobes.tech
Senior

Mit csinál a VACUUM a PostgreSQL-ben, és miért jelennek meg halott sorok?

sobes.tech MI

Válasz az MI-től

A PostgreSQL-ben, amikor sorokat frissít vagy töröl, a régi verziók nem törlődnek azonnal, hanem "halott tuple-ként" (dead tuples) válnak ismertté. Ez az MVCC-vel (Multi-Version Concurrency Control) kapcsolatos, amely biztosítja a tranzakciók izolációját. A halott tuple-k helyet foglalnak, és lassíthatják az adatbázis működését.

A VACUUM parancs ezeket a halott tuple-kat tisztítja, felszabadítva a helyet, és megakadályozva a táblák és indexek növekedését. Van egy normál VACUUM, amely egyszerűen megjelöli a területet szabadként, és egy VACUUM FULL, amely tovább tömöríti a táblát, csökkentve annak fizikai méretét.

Példa:

VACUUM saját_táblám;

Így a VACUUM fenntartja a teljesítményt, és megakadályozza a túlzott lemezterület-használatot.