Sobes.tech
Senior

Ko dara VACUUM PostgreSQL un kāpēc parādās mirušās rindas?

sobes.tech AI

Atbilde no AI

PostgreSQL, ja jūs atjaunojat vai dzēšat rindas, vecās rindkopas netiek tūlīt izdzēstas, bet kļūst par "mirušām tuple" (dead tuples). Tas ir saistīts ar MVCC (Daudzversiju konkurences kontroli), kas nodrošina transakciju izolāciju. Mirušās rindas aizņem vietu un var palēnināt datu bāzes darbību.

VACUUM komanda attīra šīs mirušās rindas, atbrīvo vietu un novērš tabulu un indeksu pieaugumu. Ir parasts VACUUM, kas vienkārši iezīmē vietu kā brīvu, un VACUUM FULL, kas papildus saspiest tabulu, samazinot tās fizisko izmēru.

Piemērs:

VACUUM mana_tabula;

Tādējādi VACUUM uztur veiktspēju un novērš pārāk lielu diska vietas izmantošanu.