Senior
Ką daro VACUUM PostgreSQL ir kodėl atsiranda mirusios eilutės?
sobes.tech AI
Atsakymas iš AI
PostgreSQL'e, kai atnaujinate arba ištrinate eilutes, senosios eilutės versijos nėra iš karto ištrinamos, o tampa "mirusiomis eilutėmis" (dead tuples). Tai susiję su MVCC (Daugiavertės konkurencijos valdymu), kuris užtikrina transakcijų izoliaciją. Mirusios eilutės užima vietos ir gali sulėtinti duomenų bazės veikimą.
VACUUM komanda išvalo šias mirusias eilutes, laisvą vietą ir užkerta kelią lentelių ir indeksų augimui. Yra įprastas VACUUM, kuris tiesiog pažymi erdvę kaip laisvą, ir VACUUM FULL, kuris papildomai suspaudžia lentelę, sumažindamas jos fizinį dydį.
Pavyzdys:
VACUUM mano_lentele;
Taip VACUUM palaiko našumą ir užkerta kelią pernelyg dideliam disko vietos naudojimui.