PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Najlepsze nowe funkcje w PostgreSQL 14

Według StackOverflow, PostgreSQL jest najpopularniejszą bazą danych o otwartym kodzie źródłowym, z którą coraz więcej programistów i administratorów chce pracować. PostgreSQL 14, najnowsza wersja wydana we wrześniu 2021 r., zawiera ponad 200 ulepszeń i nowe funkcje, które zasadniczo dzielą się na trzy obszary:bezpieczeństwo, wydajność i monitorowanie.

Począwszy od wersji 1.9.2, wydanej na początku tego roku, ClusterControl obsługuje teraz najnowszą wersję PostgreSQL 14.

W tym poście przyjrzymy się najważniejszym funkcjom, głównym aktualizacjom i ulepszeniom dostępnym w PostgreSQL 14.

Bezpieczeństwo

Najważniejsza zmiana bezpieczeństwa PostgreSQL 14 przenosi się do SCRAM jako domyślnego uwierzytelniania po uwierzytelnieniu SCRAM-SHA-256 po raz pierwszy wprowadzonym w PostgreSQL 10.  SCRAM zapewnia znacznie prostsze i wydajniejsze rozwiązanie do regulowania zgodności danych bezpieczeństwo. Poprzednie domyślne uwierzytelnianie MD5 miało w przeszłości pewne słabości.

Oprócz ulepszonego uwierzytelniania, PostgreSQL 14 upraszcza proces przypisywania użytkownikom funkcji tylko do zapisu i tylko do odczytu do tabel, widoków i schematów, wprowadzając dwie predefiniowane role, pg_write_all_data i pg_read_all_data. Poprzednia rola ułatwia tworzenie uprawnień w stylu superużytkownika. Pomimo tego, że jest wygodny dla działań i dostępu, tego rodzaju konta należy używać oszczędnie. Ta ostatnia rola ułatwia udzielanie użytkownikowi dostępu tylko do odczytu do wszystkich tabel, schematów i widoków w bazie danych. Ta rola będzie miała domyślnie dostęp do odczytu do wszystkich nowo utworzonych tabel.

Wydajność

Korporacje przetwarzają coraz więcej danych, a prędkość, objętość i różnorodność (trzy V Big Data) nie wykazują oznak spowolnienia. PostgreSQL 14 wprowadził kilka bardzo istotnych zmian, aby móc skalować w górę i w górę, aby obsługiwać te obciążenia i poprawiać wydajność. Można to najlepiej pogrupować w następujących pięciu obszarach:

Skalowalność i wydajność

PostgreSQL 14 zapewnia ogromne osiągnięcia w wydajności usuwania i aktualizacji tabel z dużą liczbą partycji. Dzięki temu usuwane i aktualizowane tabele partycjonowane mogą korzystać z przycinania partycji w czasie wykonywania. Co najważniejsze, ta wersja może skalować się do większej liczby partycji niż wcześniej, pozwalając PostgreSQL na obsługę znacznie większych baz danych, niż było to możliwe wcześniej.

W PostgreSQL w wersji 14 partycje mogą być teraz odłączane jednocześnie, co ułatwia zarządzanie dużymi tabelami danych szeregów czasowych. Jest to możliwe dzięki nowej funkcji date_bin(), która pozwala użytkownikom lepiej i łatwiej podsumowywać dane szeregów czasowych w zakresach dat.

PostgreSQL 14 dodał obsługę kompresji LZ4 dla TOAST. LZ4 wykorzystuje najnowszą technologię kompresji i koncentruje się na poprawie szybkości dekompresji i kompresji danych dokumentów. LZ4 ulepszy aplikacje o większe dokumenty XML i JSON, a ten algorytm kompresji można skonfigurować zarówno na poziomie systemu, jak i kolumn.

Rozproszone bazy danych i obciążenia

PostgreSQL 14 oferuje również ulepszenia w poziomym skalowaniu bazy danych poprzez wprowadzenie dwóch głównych ulepszeń w postgres_fdw (obce opakowanie danych), które są kluczowe dla poprawy wydajności rozproszonych baz danych. Te zmiany obsługują masowe wstawianie danych i równoległe skanowanie tabel w obcych tabelach (gdy ustawiono async_capable).

Buforowanie połączeń poprawia również wydajność, umożliwiając otwieranie połączeń między transakcjami. Możemy również wspomnieć o trybie potoku Libpd, który zwiększa wydajność rozproszonych baz danych, umożliwiając przesyłanie strumieni zmian bez czekania na potwierdzenie sieci przy każdym poleceniu.

Zarządzanie

PostgreSQL 14 również rozwiązuje problem rozrostu indeksu B-drzewa; indeksy, które są często aktualizowane, powiększają się z czasem z powodu martwych krotek, które można usunąć, uruchamiając próżnię.

Z tego powodu nieodwracalny podział strony może być spowodowany wstawieniem lub aktualizacją, gdy strona zostanie zapełniona między próżniami. Ta wersja usprawniła proces podciśnienia, wykrywając i usuwając martwe krotki pomiędzy podciśnieniami (parametr INDEX_CLEANUP ustawiony na Auto).

Kolejnym ulepszeniem systemu próżniowego jest gorliwe usuwanie usuniętych stron. W poprzednich wersjach usunięcie usuniętych stron zajmowało dwa cykle próżniowe, najpierw oznaczając stronę jako usuniętą, a drugi cykl faktycznie zwalniając to miejsce.

Dostrajanie wydajności zapytań i indeksów

Zarządzanie indeksami w dostrajaniu aplikacji jest kolejnym ważnym ulepszeniem w PostgreSQL 14. W szczególności REINDEX CONCURRENTLY i CREATE INDEX CONCURRENTLY umożliwiają jednoczesne uruchamianie wielu poleceń bez zakłócania się nawzajem. Więcej o indeksach, indeksy BRIN stały się bardziej elastyczne, ponieważ mogą rejestrować wiele wartości min/maks na zakres, co jest cenne dla grup wartości w każdym zakresie stron. Ponadto indeksy BRIN skutecznie działają z danymi, które nie są dobrze zlokalizowane w stercie za pomocą filtrów bloom.

Opcja ZATRZYMAJ w poleceniu COPY została ulepszona poprzez aktualizację bitów widoczności strony dotyczących wydajności ładowania danych. Kopiowanie w trybie binarnym jest teraz szybsze.

PostgreSQL 14 udoskonalił paralelizm zapytań poprzez dodanie paralelizmu zapytań do REFRESH MATERIALIZED VIEW i RETURN QUERY. Te ulepszenia zostały wprowadzone do połączeń zagnieżdżonych w pętli i równoległych skanowań sekwencyjnych.

PostgreSQL 14 zwiększył liczbę miejsc, w których można używać rozszerzonych statystyk do wyrażeń i estymacji klauzul OR. W przeciwieństwie do poprzednich, gdzie statystyki dotyczyły tylko kolumn, teraz jest to dozwolone w grupie wyrażeń. Widok systemowy pg_stats_ext_exprs zgłasza takie statystyki.

Ulepszona replikacja logiczna 

Replikacja logiczna została ulepszona, aby umożliwić przesyłanie strumieniowe długich transakcji w toku za pośrednictwem interfejsu API lub do subskrybentów. W poprzednich wersjach transakcje większe niż logic_decoding_work_mem były zapisywane na dysku do momentu zakończenia transakcji przed replikacją transakcji do subskrybenta. Dzięki nowym ulepszeniom replikacja logiczna efektywniej obsługuje duże ilości instrukcji DDL.

Po każdym poleceniu replikacja logiczna zapisuje komunikaty o unieważnieniu pamięci podręcznej do WAL w celu przetworzenia przez przesyłanie strumieniowe transakcji w toku. Ten proces zapewnia znaczne korzyści w zakresie wydajności.

Monitorowanie 

Jednym z największych modnych słów 2022 roku jest monitorowanie, ponieważ administratorzy i programiści chcą uzyskać lepszy wgląd w wydajność w czasie. PostgreSQL 14 wprowadził nowe funkcje ułatwiające monitorowanie. Najważniejszą zmianą z nich wszystkich jest przeniesienie systemu haszowania zapytań z pg_stat_statement do podstawowej bazy danych. Monitorowanie zapytań zostało dozwolone w kilku systemach PostgreSQL i funkcjach rejestrowania przy użyciu jednego identyfikatora.

W tej wersji wprowadzono również następujące nowe parametry monitorowania:

  1. Idle_session_timeout

  2. REINDEX indeksów podrzędnych tabeli partycjonowanej

  3. Maintenance_io_concurrency

  4. Pg_stat_progress_copy

  5. Pg_stat_wal

Aktualizacja do PostgreSQL 14

Jeśli chcesz zaktualizować swoją aktualną wersję PostgreSQL do wersji 14, masz trzy główne opcje, które wykonają to zadanie:

  1. Pg_dumpall:Jest to logiczne narzędzie do tworzenia kopii zapasowych, które pozwala zrzucić dane i przywrócić je w nowym PostgreSQL wersja. Tutaj będziesz mieć czas przestoju, który będzie się różnić w zależności od rozmiaru danych. Musisz zatrzymać system lub uniknąć nowych danych w węźle podstawowym, uruchomić pg_dumpall, przenieść wygenerowany zrzut do nowego węzła bazy danych i przywrócić go. W tym czasie nie możesz pisać do swojej podstawowej bazy danych PostgreSQL, aby uniknąć niespójności danych.

  2. Pg_upgrade:Jest to narzędzie PostgreSQL do aktualizacji twojej wersji PostgreSQL. Może to być niebezpieczne w środowisku produkcyjnym i w takim przypadku nie zalecamy tej metody. Korzystając z tej metody, będziesz mieć przestój, ale prawdopodobnie będzie on znacznie krótszy niż przy użyciu poprzedniej metody pg_dump.

  3. Replikacja logiczna:Od PostgreSQL 10 możesz użyć tej metody replikacji, która pozwala wykonuj główne aktualizacje wersji z zerowym (lub prawie zerowym) przestojem. W ten sposób można dodać węzeł zapasowy w ostatniej wersji PostgreSQL, a gdy replikacja jest aktualna, można przeprowadzić proces przełączania awaryjnego, aby promować nowy węzeł PostgreSQL.

Więcej szczegółowych informacji na temat nowych funkcji PostgreSQL 14 można znaleźć w oficjalnej dokumentacji.

Zawijanie

PostgreSQL 14 naprawdę podniósł poprzeczkę dla użytkowników tej popularnej bazy danych o otwartym kodzie źródłowym. Teraz programiści i administratorzy mają ulepszone możliwości zwiększania wysokiej wydajności i skalowalności, ulepszeń dla rozproszonych baz danych, lepszej obserwowalności i nie tylko.

ClusterControl sprawia, że ​​aktualizacja do najnowszych wersji technologii jest prosta i bezstresowa. Jeśli nie korzystasz jeszcze z ClusterControl, możesz bezpłatnie wypróbować go przez 30 dni. Aby uzyskać więcej informacji na temat najnowszej wersji ClusterControl 1.9.2, zapoznaj się z pełnymi informacjami o wydaniu.

Bądź na bieżąco ze wszystkimi najnowszymi wiadomościami i najlepszymi praktykami dotyczącymi najpopularniejszych baz danych typu open source, śledząc nas na Twitterze i LinkedIn oraz subskrybując nasz biuletyn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:liczenie wierszy dla zapytania "po minucie"

  2. 2 sposoby zwracania wierszy zawierających tylko znaki alfanumeryczne w PostgreSQL

  3. Aktualizacja Slony-I 2.0.x do najnowszej wersji 2.1.x

  4. Weryfikowanie kopii zapasowych PostgreSQL w Docker

  5. Zapytanie Railsowe typu danych Postgres JSON