Co czeka na nas w PostgreSQL 15?

PostgreSQL 15 Beta

Po blisko 9 miesiącach od utworzenia PostgreSQL 14, twórcy popularnego silnika bazodanowego zdecydowali się na publikację PostgreSQL 15 w wersji beta.

PostgreSQL 14 zostało udostępnione pod koniec września 2021 roku. Na naszym blogu opublikowaliśmy artykuł ze szczegółową listą zmian w tym wydaniu Postgresa. Dziś, na podstawie wersji beta, przybliżymy, co czeka na nas w PostgreSQL 15.

Czym jest PostgreSQL?

PostgreSQL to system do zarządzania obiektowo-relacyjnymi bazami danych, opracowany na Wydziale Informatyki Uniwersytetu Kalifornijskiego w Berkeley. Projekt początkowo nosił nazwę POSTGRES, która z biegiem lat przekształciła się w Postgres95, a następnie w PostgreSQL. Mając za sobą ponad dwie dekady rozwoju, PostgreSQL jest obecnie najbardziej zaawansowaną bazą danych Open Source. Ze względu na genezę rozwiązania oraz łatwiejszą wymowę, powszechnie akceptowalnym aliasem PostgreSQL jest „Postgres” (rzadko już pisany wielkimi literami).

Pozycja PostgreSQL na światowym rynku

Podsumowanie pozycji Postgresa na rynku jest logiczną kontynuacją statystyk przytoczonych w poprzednim artykule. W celu oszacowania popularności Postgresa skorzystaliśmy z tych samych narzędzi co ostatnim razem – z Google Trends. PostgreSQL ma kolor niebieski, Oracle Database kolor czerwony, a MongoDB kolor żółty. Dodatkowo na wykresie można zauważyć punkty, które oznaczają ostatnio przeprowadzone przez nas badanie. Wykres przedstawia zainteresowanie poszczególnymi bazami w czasie. Szczyt popularności frazy w wyszukiwaniach Google oznaczony został jako „100”. Wartość „50” oznacza, że fraza była dwa razy mniej popularna.

PostgreSQL 15 beta

Jak widać, PostgreSQL powiększa swoją przewagę nad zamkniętą bazą, jaką jest Oracle DB, której popularność stale spada. MongoDB, jako inny przedstawiciel otwartych systemów bazodanowych, utrzymuje się od pewnego momentu na stałym pułapie zainteresowania. W przypadku PostgreSQL można zaobserwować tendencję wzrostową.

Nowości w PostgreSQL 15

Mimo że do wydania stabilnej wersji 15 Postgresa minie jeszcze trochę czasu, to trzeba pamiętać, że wersja beta daje nam wgląd w to, co twórcom udało się do tego czasu dodać i udoskonalić. Trzeba przyznać, że jest tego naprawdę dużo. Począwszy od poprawienia komfortu użytkowania samego systemu przez developera, poprzez zwiększenie wydajności operacji bazodanowych, a skończywszy na kolejnym zwiększeniu zakresu bezpieczeństwa. Poniżej opiszemy najważniejsze zmiany i nowości, które pojawiły się w PostgreSQL 15 beta.

Ogólna poprawa wrażeń developera

Twórcy PostgreSQL zawsze mieli w zwyczaju wychodzić naprzeciw oczekiwaniom społeczności. Tym razem w wersji 15 znajdziemy nowe funkcje, które ułatwią korzystanie z systemu. Jedną z takich nowości jest MERGE – standardowe polecenie SQL do warunkowego wykonywania operacji zapisu danych w bazie. Wcześniej, aby osiągnąć to samo co nowa komenda, należało użyć procedur składowych.

Inną, równie istotną zmianą jest dodanie większej ilości wyrażeń regularnych, takich jak regexp_count, regexp_instr, regexp_like, regexp_substr czy range_agg. Oprócz tego rozwinięte będzie wsparcie dla JSON, w tym możliwość konwersji danych JSON na tabelę.

Zwiększenie wydajności

PostgreSQL z wersji na wersję zwiększa swoją wydajność. W wydaniu 15 znajdziemy ulepszony algorytm sortowania wielkich zbiorów danych, w szczególności przekraczających parametr work_mem. Wydajność zostanie również zwiększona dla różnych typów zapytań, np. po wprowadzeniu zrównoleglenia dla instrukcji SELECT DISTINCT czy window functions używających row_number(), rank() i count(). Należy również wspomnieć, że w nowym PostgreSQL należy spodziewać się poprawy wydajności komendy psql \copy, która odpowiada za proces skopiowania dużej ilości danych.

Nowe standardy kopii zapasowych, archiwizacji i kompresji

W poprzedniej wersji Postgresa dodana została możliwość kompresji LZ4. Teraz w wydaniu 15 pojawi się możliwość wykorzystania kolejnej metody kompresji o nazwie Zstandard (zstd). Co za tym idzie, narzędzie pg_basebackup, zarówno po stronie serwera, jak i klienta, będzie obsługiwać także kompresję w formacie Zstandard. Podobnie jest w przypadku plików WAL, które za pomocą wal_compression będzie można skonfigurować tak, aby korzystały z nowo dodanego formatu kompresji danych. Jeżeli już mowa o plikach WAL, nowy moduł pg_walinspect będzie mógł pobrać informacje dotyczące tych plików bezpośrednio z SQL. Dodana zostanie także opcja recovery_prefetch, dzięki której będzie można znacząco przyspieszyć proces przywracania danych.

Logiczna replikacja z większymi możliwościami

PostgreSQL 15 pozytywnie zaskoczy również osoby korzystające z replikacji logicznej. Będzie można filtrować po wierszach i kolumnach oraz określać publikowanie wszystkich tabel w schemacie, zamiast w bazie danych (tak jak to było możliwe do tej pory). Warto dodać, że w nowej wersji PostgreSQL możliwe będzie określenie zmiennej disable_on_error, która pozwoli subskrybentowi zatrzymać logiczną replikację w przypadku wykrycia błędu w głównej bazie.

Uproszczenie administrowania

Administrowanie bazą danych zawsze wiąże się z dużą odpowiedzialnością. Wiedząc to, twórcy Postgresa dążą do uproszczenia analizy, czy też zwiększenia przejrzystości logów. W najnowszej wersji silnika zostanie dodany jsonlog – czyli nowy format logów, dzięki któremu będą one miały postać bardziej ustrukturyzowaną. PostgreSQL w wersji 15 będzie również domyślnie zapisywać w logach nadzwyczaj powolne operacje wykonywania checkpointów i autovacuum. Ciekawą zmianą może być również przechowywanie wszystkich statystyk serwera w pamięci współdzielonej serwera, przez co możliwe będzie wyłączenie oddzielnego procesu kolektora statystyk.

Podniesienie poziomu bezpieczeństwa

Bezpieczeństwo to podstawa, zatem zrozumiałe jest ciągłe udoskonalanie Postgresa w stronę najbezpieczniejszego systemu do zarządzania bazą danych. Wersja 15 wprowadza nową zasadę podczas tworzenia bazy danych w klastrze. Po utworzeniu bazy, użytkownicy, którzy nie są właścicielami ani administratorami, nie będą mogli tworzyć obiektów w schemacie public.

Najnowsza wersja Postgresa może zawierać również obsługę tak zwanych security invoker views, czyli widoków, które wykorzystują uprawnienia użytkowników wykonujących do nich zapytania, zamiast uprawnień twórcy widoku. Pozwala to na szerszą kontrolę dostępu i jednocześnie na podniesienie poziomu bezpieczeństwa.

PostgreSQL 15 powoli się zbliża

Ostatnie wydanie PostgreSQL 15 beta, które upublicznione zostało 19 maja 2022 roku, utwierdza użytkowników w przekonaniu, że najnowsza, stabilna wersja Postgresa będzie dostępna jeszcze w tym roku. Mając na uwadze poprzednie daty wydania systemu bazodanowego PostgreSQL 13 i 14, można domniemać, że tak jak poprzedniczki, wersja 15 zostanie ogłoszona we wrześniu bieżącego roku.