Wersja PostgreSQL 12 DBMS

Po roku rozwoju opublikowany nowa stabilna gałąź systemu DBMS PostgreSQL 12. Aktualizacje dla nowej gałęzi wyjdzie przez pięć lat, do listopada 2024 r.

Głównym innowacje:

  • Dodano obsługę „wygenerowane kolumny", którego wartość obliczana jest na podstawie wyrażenia obejmującego wartości innych kolumn w tej samej tabeli (podobnie jak widoki, ale dla pojedynczych kolumn). Wygenerowane kolumny mogą być dwojakiego rodzaju – przechowywane i wirtualne. W pierwszym przypadku wartość jest obliczana w momencie dodania lub zmiany danych, w drugim przypadku wartość jest obliczana przy każdym odczycie na podstawie aktualnego stanu pozostałych kolumn. Obecnie PostgreSQL obsługuje tylko wygenerowane kolumny;
  • Dodano możliwość wysyłania zapytań o dane z dokumentów JSON przy użyciu Wyrażenia ścieżki, przypomina XPath i zdefiniowane w standardzie SQL/JSON. Istniejące mechanizmy indeksujące służą poprawie efektywności przetwarzania takich wyrażeń dla dokumentów przechowywanych w formacie JSONB;
  • Domyślnie włączone jest użycie kompilatora JIT (Just-in-Time) opartego na rozwiązaniach LLVM w celu przyspieszenia wykonywania niektórych wyrażeń podczas przetwarzania zapytań SQL. Na przykład JIT służy do przyspieszania wykonywania wyrażeń w blokach WHERE, listach docelowych, wyrażeniach agregujących i niektórych operacjach wewnętrznych;
  • Wydajność indeksowania została znacznie poprawiona. Indeksy B-tree są zoptymalizowane do pracy w środowiskach, w których indeksy często się zmieniają - testy TPC-C wykazują ogólny wzrost wydajności i średnie zmniejszenie zużycia miejsca na dysku o 40%. Zmniejszone obciążenie podczas generowania dziennika zapisu z wyprzedzeniem (WAL) dla typów indeksów GiST, GIN i SP-GiST. Dla GiST dodano możliwość tworzenia indeksów opakowań (poprzez wyrażenie INCLUDE), które zawierają dodatkowe kolumny. Działa TWORZENIE STATYSTYK Zapewnia obsługę statystyk Most Common Value (MCV) w celu generowania bardziej optymalnych planów zapytań w przypadku korzystania z nierównomiernie rozłożonych kolumn;
  • Implementacja partycjonowania jest zoptymalizowana pod kątem zapytań obejmujących tabele zawierające tysiące partycji, ale ogranicza się do wybierania ograniczonego podzbioru danych. Zwiększono wydajność dodawania danych do partycjonowanych tabel za pomocą operacji INSERT i COPY, a także możliwe jest dodawanie nowych sekcji poprzez „ALTER TABLE ATTACH PARTITION” bez blokowania wykonywania zapytań;
  • Dodano obsługę automatycznego, wbudowanego rozwijania uogólnionych wyrażeń tabelowych (Wspólne wyrażenie tabelowe, CTE), które pozwalają na użycie tymczasowych nazwanych zestawów wyników określonych za pomocą instrukcji WITH. Wdrożenie wbudowane może poprawić wydajność większości zapytań, ale obecnie jest używane tylko w przypadku nierekurencyjnych CTE;
  • Dodano wsparcie niedeterministyczny właściwości ustawień regionalnych „Collation”, które umożliwiają ustawienie reguł sortowania i metod dopasowywania uwzględniających znaczenie znaków (np. przy sortowaniu wartości cyfrowych obecność minusa i kropki przed liczbą oraz różne typy pisowni, a przy porównywaniu nie uwzględnia się wielkości liter i obecności znaku akcentu) ;
  • Dodano obsługę wieloskładnikowego uwierzytelniania klienta, w którym w pg_hba.conf można połączyć uwierzytelnianie za pomocą certyfikatu SSL (clientcert=verify-full) z dodatkową metodą uwierzytelniania, taką jak scram-sha-256 w celu uwierzytelnienia;
  • Dodano obsługę szyfrowania kanału komunikacji podczas uwierzytelniania przez GSSAPI, zarówno po stronie klienta, jak i po stronie serwera;
  • Dodano obsługę określania serwerów LDAP na podstawie rekordów „DNS SRV”, jeśli PostgreSQL jest zbudowany z OpenLDAP;
  • Dodano operację „REINDEKSUJ RÓWNOCZEŚNIE» odbudować indeksy bez blokowania operacji zapisu do indeksu;
  • Dodano zespół pg_sumy kontrolne, który umożliwia włączenie lub wyłączenie sprawdzania sum kontrolnych stron danych dla istniejącej bazy danych (poprzednio operacja ta była obsługiwana tylko podczas inicjalizacji bazy danych);
  • Dostarczono wynik wskaźnika postępu dla operacji CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL i pg_checksums;
  • Dodano polecenie „UTWÓRZ METODĘ DOSTĘPU» aby połączyć procedury obsługi nowych metod przechowywania w tabelach, zoptymalizowanych pod kątem różnych specyficznych zadań. Obecnie jedyną wbudowaną metodą dostępu do tabeli jest „sterta”;
  • Plik konfiguracyjny recovery.conf został połączony z plikiem postgresql.conf. Jako wskaźniki przejścia do stanu regeneracji po awarii, teraz musi być użyj plików recovery.signal i standby.signal.

Źródło: opennet.ru

Dodaj komentarz