Tabele partycjonowane
Funkcja baz danych: logicznie jedna tabela, fizycznie podzielona na wiele „partycji” według klucza partycjonowania. Zastosowanie: duże tabele (10 mln+ wierszy), szeregi czasowe, wielodostępność. Deklaratywne partycjonowanie w PostgreSQL od wersji 10 (2017). MySQL ma je od 5.1.
Strategie: RANGE (według daty lub zakresu liczbowego), LIST (konkretne wartości), HASH (dla równomiernego rozkładu). Zysk: przycinanie partycji (partition pruning) — zapytanie z WHERE na kluczu partycjonowania skanuje tylko pasujące partycje. Utrzymanie: usunięcie starej partycji jest szybkie, O(1), w przeciwieństwie do DELETE, które jest O(N). Koszty: bardziej złożony planista zapytań, klucze obce między partycjami są skomplikowane, wsparcie w ORM bywa różne. Postgres 11+ dodał obsługę kluczy obcych i indeksów. Klasyczne użycie: tabele logów partycjonowane miesięcznie — dane sprzed 12 miesięcy znikają natychmiast.