Wydanie systemu DBMS PostgreSQL 12

Po roku prac rozwojowych opublikowane Nowa stabilna gałąź bazy danych PostgreSQL 12. Aktualizacje dla nowej gałęzi będą wydawane W ciągu pięciu lat do listopada 2024 roku.

Podstawowe nowości:

  • Dodano wsparcie dla „generowanych kolumn„, którego wartość jest obliczana na podstawie wyrażenia obejmującego wartości innych kolumn w tej samej tabeli (analogicznie do widoków, ale dla pojedynczych kolumn). Kolumny generowane mogą być dwóch typów — przechowywane i wirtualne. W pierwszym przypadku wartość oblicza się w momencie dodawania lub zmiany danych, a w drugim — przy każdym odczycie na podstawie bieżącego stanu innych kolumn. W tej chwili w PostgreSQL obsługiwane są tylko przechowywane kolumny generowane;
  • Dodano możliwość wykonywania zapytań o dane z dokumentów JSON za pomocą Wyrażeń ścieżek, przypominających XPath i określonych w standardzie SQL/JSON. Aby poprawić wydajność przetwarzania takich wyrażeń dla dokumentów przechowywanych w formacie JSONB, stosowane są istniejące mechanizmy indeksowania;
  • Domyślnie włączono zastosowanie kompilatora JIT (Just-in-Time) opartego na osiągnięciach LLVM, aby przyspieszyć wykonywanie niektórych wyrażeń podczas przetwarzania zapytań SQL. Na przykład, JIT można zastosować do przyspieszenia wykonywania wyrażeń wewnątrz bloków „WHERE”, w listach docelowych, w wyrażeniach agregacyjnych i niektórych operacjach wewnętrznych;
  • Znacząco zwiększono wydajność indeksowania. Indeksy B-drzew są zoptymalizowane do pracy w warunkach częstych zmian indeksów — w testach TPC-C zaobserwowano ogólny wzrost wydajności i zmniejszenie zużycia przestrzeni dyskowej średnio o 40%. Zredukowano obciążenia związane z generowaniem logu zapisu wyprzedzającego (WAL) dla typów indeksów GiST, GIN i SP-GiST. Dla GiST dodano możliwość tworzenia indeksów-wrappers (poprzez wyrażenie INCLUDE), obejmujących dodatkowe kolumny. W operacji CREATE STATISTICS zapewniono obsługę statystyki dotyczącej najbardziej typowych wartości (MCV), co umożliwia generowanie bardziej optymalnych planów zapytań przy użyciu nierównomiernie rozłożonych kolumn;
  • Realizacja partycjonowania została zoptymalizowana dla zapytań obejmujących tabele z tysiącami sekcji, ale ograniczających wybór do niewielkiego podzbioru danych. Zwiększono wydajność dodawania danych do partycjonowanych tabel za pomocą operacji INSERT i COPY, a także zapewniono możliwość dodawania nowych sekcji poprzez „ALTER TABLE ATTACH PARTITION” bez blokowania wykonania zapytań;
  • Dodano wsparcie dla automatycznego rozwijania ogólnych wyrażeń tabelarycznych (Common Table Expression, CTE), które pozwalają na użycie tymczasowych nazwanych zbiorów wynikowych określanych za pomocą operatora WITH. Inline rozwijanie pozwala zwiększyć wydajność większości zapytań, ale na razie stosowane jest tylko dla nie-rekurencyjnych CTE;
  • Dodano wsparcie dla niedeterministycznych własności lokalizacji „Collation”, które umożliwiają określenie zasad sortowania oraz metod porównywania uwzględniających znaczenie znaków (na przykład, przy sortowaniu wartości liczbowych uwzględnia się obecność znaku minus i kropki przed liczbą oraz różne sposoby zapisu, a przy porównywaniu nie bierze się pod uwagę wielkości liter i obecności akcentów);
  • Dodano wsparcie dla wieloskładnikowej autoryzacji klienta, gdzie w pliku pg_hba.conf można łączyć autoryzację na podstawie certyfikatu SSL (clientcert=verify-full) z dodatkową metodą autoryzacji, taką jak scram-sha-256;
  • Dodano wsparcie dla szyfrowania kanału komunikacyjnego przy autoryzacji przez GSSAPI, zarówno po stronie klienta, jak i po stronie serwera;
  • Dodano wsparcie dla definiowania serwerów LDAP na podstawie rekordów „DNS SRV”, jeśli PostgreSQL został skompilowany z OpenLDAP;
  • Dodano operację „REINDEX CONCURRENTLY” do reorganizacji indeksów bez blokowania operacji zapisu w indeksie;
  • Dodano komendę pg_checksums, która pozwala na włączenie i wyłączenie walidacji sum kontrolnych stron danych dla istniejącej bazy danych (wcześniej operacja ta była wspierana tylko podczas inicjalizacji bazy danych);
  • Zapewniono wyświetlanie wskaźnika postępu wykonywania operacji CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL oraz pg_checksums;
  • Dodano polecenie „CREATE ACCESS METHOD” do podłączenia obsługiwaczy nowych metod przechowywania tabel, zoptymalizowanych dla różnych specyficznych zadań. Na chwilę obecną jedyną wbudowaną metodą dostępu do tabel jest „heap”;
  • Plik konfiguracyjny recovery.conf został połączony z postgresql.conf. Jako wskaźniki przejścia w stan odbudowy po awarii teraz należy należy używać plików recovery.signal i standby.signal.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster