EuroDB 12 nowa wersja PostgreSQL

EuroDB 12 – jakie zmiany przynosi nowe wydanie PostgreSQL?

Kolejne, dwunaste już wydanie PostgreSQL jak zwykle raduje mocą nowych możliwości. W tym tekście przybliżymy najważniejsze zmiany w najbardziej zaawansowanym Open Source’owym silniku bazodanowym.

Kolejne, dwunaste już wydanie PostgreSQL jak zwykle raduje mocą nowych możliwości. W tym tekście przybliżymy najważniejsze zmiany w najbardziej zaawansowanym Open Source’owym silniku bazodanowym.

Nowe funkcje silnika PostgreSQL

Silnik PostgreSQL jest znany ze zgodności ze standardem SQL. Nowe wydanie implementuje kolejne funkcjonalności, dodatkowo zwiększając stopień zgodności.

W 12. wersji PostgreSQL została dodana możliwość odpytywania danych w dokumentach JSON przez skorzystanie z tzw. JSON path expressions, będących częścią standardu SQL/JSON. Zapytania będą mogły skorzystać z istniejącego wsparcia dla indeksów dostosowanych do typu danych JSONB, co skutecznie zwiększy wydajność w tym zastosowaniu.

Zapytania korzystające ze słowa kluczowego WITH (ang. common table expressions) w wariancie nierekurencyjnym są automatycznie „inline’owane”, co zwiększa szybkość istniejących zapytań korzystających z tej możliwości języka SQL.

Nową funkcją są również kolumny generowane. Zgodnie ze standardem SQL wartość w takiej kolumnie jest zależna od zawartości innych kolumn w tej samej tabeli. To wydanie silnika oferuje wsparcie dla „składowanych kolumn generowanych”, gdzie wartości po ich generacji są przechowywane na dysku.

Zwiększona wydajność

Najnowsza wersja silnika wprowadza poprawki wydajności skupiające się na podsystemach związanych z indeksowaniem oraz partycjonowaniem.

Indeksy typu B-Treem, domyślnie wykorzystywane w Postgresie, zostały zoptymalizowane w wersji 12. tak, aby lepiej zachowywały się w zastosowaniach wymagających ich częstych modyfikacji. Przy zastosowaniu benchmarka TPC-C wersja 12. cechuje się średnio 40%-owym zmniejszeniem zapotrzebowania na przestrzeń dyskową oraz wzrostem wydajności wykonywanych zapytań w stosunku do poprzedniej wersji.

Zapytania na partycjonowanych tabelach również zostały istotnie przyspieszone. Szczególnie uwzględniono przypadek, w którym dane mają zostać pobrane z małego podzbioru partycji, gdy całość liczby partycji jest bardzo duża. Dodatkowo przyspieszone zostały operacje dodawania danych do partycjonowanych tabel przy pomocy INSERT oraz COPY. Kolejna zmiana wydajności wiąże się z dodawaniem nowych partycji – teraz ta operacja nie powoduje zakładania blokad na tę tabelę.

Lista usprawnień wydajnościowych wieńczą poprawki w generacji plików WAL dla zaawansowanych indeksów (GiST, GIN, SP-GiST) oraz zmiana domyślnego ustawienia dotyczącego optymalizacji zapytań analitycznych przez kompilację w locie – JIT.

Usprawniona administracja

Najnowsze wydanie PostgreSQL ułatwia również pracę administratorów baz danych.

Dzięki możliwości przebudowania indeksów bez korzystania z blokad przy pomocy REINDEX CONCURRENTLY, 12. wersja silnika pozwala uniknąć konieczności planowania długich okien serwisowych w celu poprawienia wydajności indeksów dla bardzo dużych tabel.

Dodatkowo przy pomocy nowego narzędzia pg_checksums można włączyć bądź wyłączyć sprawdzanie integralności danych na wyłączonym klastrze, bez konieczności tworzenia go od nowa przy pomocy initdb, tak jak było to robione w poprzednich wydaniach.

O wszystkich informacjach dotyczących 12. wydania można przeczytać w oficjalnych release notes projektu.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.