Ponieważ MVCC tworzy „martwe” wersje wierszy, VACUUM je sprząta, żeby zwolnić miejsce i utrzymać wydajność. Autovacuum robi to automatycznie i zapobiega bloatowi oraz problemom z wraparound transaction ID.
Odpowiedź zaawansowana
Głębiej
Rozwinięcie krótkiej odpowiedzi — co zwykle ma znaczenie w praktyce:
Kontekst (tagi): vacuum, autovacuum, bloat
Model danych i dostęp: jakie zapytania dominują (read/write ratio, sortowanie, paginacja).
Indeksy: kiedy pomagają, a kiedy szkodzą (write amplification, pamięć).
Spójność i transakcje: co jest gwarantowane i gdzie trzeba uważać.
Wytłumacz "dlaczego", nie tylko "co" (intuicja + konsekwencje).
Trade-offy: co zyskujesz i co tracisz (czas, pamięć, złożoność, ryzyko).
Edge-case’y: puste dane, duże dane, błędne dane, współbieżność.
Przykłady
Krótki przykład (kształt zapytania):
-- Example: index + query shape
SELECT *
FROM users
WHERE email = '[email protected]'
LIMIT 1;
Typowe pułapki
Zbyt ogólna odpowiedź (brak konkretów, brak przykładów).
Brak rozróżnienia między "średnio" a "najgorzej" (np. złożoność).