PostgreSQL Performance & Query Optimization · Lekcja

Konfiguracja i dostrajanie autovacuum

Naucz się konfigurować i dostrajać demona autovacuum pod kątem optymalnej wydajności i konserwacji.

Lekcja 2 z 411 kroki

Konfiguracja i dostrajanie autovacuum to bezpłatna lekcja PostgreSQL Performance & Query Optimization na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PostgreSQL Performance & Query Optimization, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PostgreSQL Performance & Query Optimization zawiera 4 lekcji w sumie.

Optymalizacja bazy danych za pomocą autovacuum

Witamy w lekcji dostrajania autovacuum w PostgreSQL! Po poznaniu mechanizmów MVCC i VACUUM przyjrzyjmy się zarządzaniu tym kluczowym procesem działającym w tle.

Autovacuum automatycznie odzyskuje miejsce i aktualizuje statystyki, zapobiegając problemom z wydajnością, takim jak rozrost tabel i wolne zapytania.

Automatyczne zadania autovacuum

Demona autovacuum działa w tle i stale monitoruje bazę danych pod kątem tabel wymagających uwagi. Wykonuje dwie główne operacje:

  • VACUUM: odzyskuje miejsce zajmowane przez „martwe” wiersze, udostępniając je nowym danym.
  • ANALYZE: aktualizuje statystyki tabel, pomagając planistycznemu zapytań wybrać najbardziej wydajne plany wykonania.

Gdzie znaleźć ustawienia autovacuum

Większość ustawień autovacuum znajduje się w pliku konfiguracyjnym PostgreSQL, zwykle o nazwie postgresql.conf. Można je również zmieniać na poziomie bazy danych lub tabeli.

Należy pamiętać o ponownym uruchomieniu PostgreSQL lub przeładowaniu konfiguracji, aby zmiany zaczęły obowiązywać!

SHOW config_file;

Włączanie i wyłączanie autovacuum

Najbardziej podstawowym ustawieniem jest autovacuum. Zwykle jest ono domyślnie włączone i w większości systemów produkcyjnych należy pozostawić je w takim stanie!

Wyłączenie tej funkcji wymaga ręcznego wykonywania operacji vacuum, o którym łatwo zapomnieć, co może prowadzić do poważnych problemów z wydajnością.

ALTER SYSTEM SET autovacuum = on;

Kiedy autovacuum wykonuje vacuum tabel

Autovacuum uruchamia operację VACUUM, gdy zgromadzi się określona liczba martwych wierszy. Sterują tym dwa parametry:

  • autovacuum_vacuum_scale_factor: procentowy udział rozmiaru tabeli (np. 0.2 oznacza 20%).
  • autovacuum_vacuum_threshold: stała minimalna liczba martwych wierszy.

Operacja vacuum jest uruchamiana, gdy (dead_rows > autovacuum_vacuum_threshold + table_rows * autovacuum_vacuum_scale_factor).

Obliczanie progów vacuum

Załóżmy, że autovacuum_vacuum_threshold wynosi 50, a autovacuum_vacuum_scale_factor wynosi 0.2 (20%). W przypadku tabeli zawierającej 1000 wierszy operacja vacuum zostanie uruchomiona, gdy:

  • dead_rows > 50 + (1000 * 0.2)
  • dead_rows > 50 + 200
  • dead_rows > 250

Wartości te można dostosować do tabel bardzo aktywnych lub niemal niezmienianych.

Kiedy autovacuum analizuje tabele

Podobnie jak w przypadku vacuum, autovacuum uruchamia operację ANALYZE na podstawie progu:

  • autovacuum_analyze_scale_factor: procentowy udział rozmiaru tabeli.
  • autovacuum_analyze_threshold: stała minimalna liczba zmienionych wierszy.

Analizowanie zapewnia planiście zapytań aktualne statystyki niezbędne do tworzenia optymalnych planów zapytań, zapobiegając ich spowalnianiu.

Częstotliwość i współbieżność autovacuum

Dwa kolejne ważne parametry:

  • autovacuum_naptime: czas oczekiwania autovacuum między sprawdzeniami baz danych (np. '1min'). Krótszy czas oznacza częstsze sprawdzanie.
  • autovacuum_max_workers: maksymalna liczba procesów autovacuum, które mogą jednocześnie działać we wszystkich bazach danych. Większa liczba procesów oznacza bardziej współbieżne wykonywanie operacji vacuum i analyze.

Dostosowywanie autovacuum dla poszczególnych tabel

Czasami tabela może wymagać innych ustawień autovacuum niż wartości domyślne obowiązujące globalnie. Na przykład bardzo duża, często aktualizowana tabela może skorzystać z bardziej intensywnego wykonywania operacji vacuum.

Większość parametrów autovacuum można nadpisać dla poszczególnych tabel za pomocą polecenia ALTER TABLE.

ALTER TABLE my_large_table SET (autovacuum_vacuum_scale_factor = 0.05);

Szybkie sprawdzenie wiedzy o autovacuum

Autovacuum pomaga utrzymać bazę danych w dobrym stanie. Sprawdźmy, czy rozumieją Państwo, jak decyduje ono o uruchomieniu vacuum dla tabeli.

Podsumowanie dostrajania autovacuum

Świetnie! Poznali już Państwo sposoby konfigurowania i dostrajania demona autovacuum w PostgreSQL.

  • Autovacuum automatycznie wykonuje operacje VACUUM i ANALYZE.
  • Kluczowe parametry określają, kiedy (współczynnik skalowania, próg) i jak często (czas uśpienia) jest ono uruchamiane.
  • Ustawienia można dostosowywać globalnie w pliku postgresql.conf lub dla poszczególnych tabel za pomocą ALTER TABLE.

Właściwe dostrojenie autovacuum jest niezbędne do utrzymania wydajności bazy danych i zapobiegania rozrostowi tabel.

Bezpłatny start

Ucz się SQL dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
22
Lekcje
88

Często zadawane pytania

Czy lekcja „Konfiguracja i dostrajanie autovacuum” jest bezpłatna?

Tak — pełny tekst „Konfiguracja i dostrajanie autovacuum” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PostgreSQL Performance & Query Optimization, przejdź na CoddyKit PRO. Kurs PostgreSQL Performance & Query Optimization zawiera 4 lekcji w sumie.

Co nauczysz się w „Konfiguracja i dostrajanie autovacuum”?

Naucz się konfigurować i dostrajać demona autovacuum pod kątem optymalnej wydajności i konserwacji. Ćwiczysz PostgreSQL Performance & Query Optimization z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć PostgreSQL Performance & Query Optimization?

Nie wymagamy żadnego doświadczenia. PostgreSQL Performance & Query Optimization w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Konfiguracja i dostrajanie autovacuum”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji PostgreSQL Performance & Query Optimization?

Tak. Każda lekcja PostgreSQL Performance & Query Optimization zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Poznawanie MVCC i VACUUM
  2. Konfiguracja i dostrajanie autovacuum
  3. Wpływ poziomów izolacji transakcji
  4. Zapobieganie przepełnieniu identyfikatorów transakcji
← Powrót do PostgreSQL Performance & Query Optimization