Junior — Middle
Dlaczego w PostgreSQL używa się polecenia VACUUM i jaka jest jego główna rola w zarządzaniu bazą danych?
sobes.tech AI
Odpowiedź od AI
W PostgreSQL komenda VACUUM służy do oczyszczania bazy danych z 'martwych' wierszy, które pozostają po aktualizacjach i usunięciach. Główną rolą VACUUM jest zwolnienie miejsca zajmowanego przez te nieaktualne wpisy, aby zapobiec wzrostowi rozmiaru tabel i poprawić wydajność zapytań.
PostgreSQL używa MVCC (kontroli wielowersyjnej), w której aktualizacje nie nadpisują wierszy, lecz tworzą nowe wersje. Stare wersje są uważane za 'martwe' i nie są potrzebne po zakończeniu wszystkich transakcji, które mogły je widzieć. VACUUM usuwa te stare wersje.
Ponadto VACUUM aktualizuje statystyki i metadane, co pomaga planistom zapytań w wyborze optymalnych planów wykonania.
Przykład użycia:
VACUUM;
-- lub dla głębszego oczyszczenia
VACUUM FULL;