Sobes.tech
Junior — Middle

Czy możesz wyjaśnić, jak działa polecenie VACUUM w PostgreSQL i do czego służy?

sobes.tech AI

Odpowiedź od AI

Polecenie VACUUM w PostgreSQL służy do oczyszczania bazy danych z 'martwych' wierszy, które pozostają po operacjach aktualizacji i usuwania. Pomaga to zwolnić miejsce i zapobiec rozrostowi tabel.

Główne zadania VACUUM:

  • Usuwanie starszych wersji wierszy (martwych krotek), aby nie zajmowały miejsca.
  • Aktualizacja statystyk dla planisty zapytań (jeśli używany jest VACUUM ANALYZE).
  • Zapobieganie przepełnieniu identyfikatora transakcji (wraparound).

Bez regularnego wykonywania VACUUM wydajność bazy może się pogarszać, a rozmiar tabel rosnąć.

Przykład wywołania w SQL:

VACUUM;
VACUUM ANALYZE;

W Go można wykonać to polecenie przez sterownik bazy danych, na przykład:

_, err := db.Exec("VACUUM")
if err != nil {
    log.Fatal(err)
}