24 września 2020 — Grupa PostgreSQL Global Development ogłosiła dzisiaj wydanie PostgreSQL 13, najnowszej wersji najbardziej zaawansowanej bazy danych open source.
PostgreSQL 13 zawiera znaczące ulepszenia systemów indeksowania i wyszukiwania, z których najbardziej skorzystają duże bazy danych, włączając w to m.in. oszczędność pamięci i lepszą wydajność indeksów, krótsze czasy odpowiedzi dla zapytań używających agregatów i partycji, a także lepsze planowanie zapytań dzięki rozszerzonym statystykom.
Wydanie to zawiera również bardzo oczekiwane funkcje, takie jak równoległe czyszczenie (vacuum) oraz sortowanie przyrostowe. PostgreSQL 13 zapewnia lepsze środowisko zarządzania danymi dla baz o dużym i małym obciążeniu, z optymalizacjami dla codziennego zarządzania bazami, a także więcej udogodnień dla twórców aplikacji oraz ulepszenia zabezpieczeń.
PostgreSQL 13 jest przykładem współpracy i zaangażowania naszej globalnej społeczności w rozwijaniu możliwości najbardziej zaawansowanej na świecie relacyjnej bazy danych typu open source" - powiedział Peter Eisentraut, członek zespołu PostgreSQL Core Team. "Innowacje, które niesie ze sobą każde wydanie, wraz z reputacją niezawodności i stabilności, jest powodem, dla którego coraz więcej osób decyduje się na używanie PostgreSQL w swoich aplikacjach.
PostgreSQL, to innowacyjny system zarządzania danymi znany ze swojej niezawodności i solidności. Rozwijany od ponad 25 lat jako open source przez globalną społeczność programistów stał się ulubioną relacyjną bazą danych open source wśród organizacji o różnej wielkości.
Kontynuując ulepszenia z poprzedniego wydania, PostgreSQL 13 może wydajnie obsługiwać duplikowane dane w indeksach B-tree, które są standardowym typem indeksu. Dzięki temu zapotrzebowanie na pamięć używaną przez te indeksy zostało zmniejszone, co poprawia ogólną wydajność zapytań.
PostgreSQL 13 wprowadza sortowanie przyrostowe, w którym dane posortowane na
wcześniejszym etapie wykonywania zapytania mogą zostać użyte do sortowania w
późniejszym etapie. Dodatkowo PostgreSQL może teraz używać systemu
rozszerzonych statystyk
(który jest dostępny poprzez CREATE STATISTICS
))
do poprawienia planów zapytań wykorzystujących OR
oraz w
wyszukiwaniach IN
/ANY
działających na listach.
W PostgreSQL 13, więcej typów agregatów oraz grupowania zbiorów, może korzystać z wydajnej agregacji korzystającej z funkcji skrótu (hash aggregation), jako że zapytania z dużą liczbą agregatów nie muszą mieścić się całkowicie w pamięci. Zapytania z partycjnowanymi tabelami zyskały lepszą wydajność dzięki zwiększeniu przypadków, w których partycje mogą być pominięte albo złączone.
Czyszczenie (vacuum) jest istotną częścią administracji bazą PostgreSQL. Pozwala na odzyskanie miejsca zajmowanego przez zmienione albo usunięte wiersze. Proces ten również może być wyzwaniem dla administratorów, chociaż wcześniejsze wydania bazy PostgreSQL zmniejszały obciążenie związane z nim.
PostgreSQL 13 kontynuuje usprawnianie systemu czyszczenia poprzez wprowadzenie równoległego czyszczenia dla indeksów. Poza zwiększoną wydajnością, użycie tej nowej funkcjonalności może być dostosowane do obciążenia bazy danych, ponieważ administratorzy mogą określić liczbę równolegle działających procesów. Dodatkowo, teraz wstawianie danych może również uruchamiać proces czyszczenia.
Sloty replikacji, używane do zapobiegania usuwania dzienników zapisu z wyprzedzeniem (write-ahead log - WAL) zanim otrzyma je replika bazy danych, mogą być dostosowane w PostgreSQL 13 poprzez określenie maksymalnej liczby plików WAL do pozostawienia, co pomoże w uniknięciu błędów zapełnienia dysku.
PostgreSQL 13 wprowadza również dodatkowe sposoby, dzięki którym administrator może
monitorować aktywność bazy danych, włączając w to pokazanie statystyk użycia logów
WAL w EXPLAIN
, postęp strumieniowego robienia kopii bazy danych, a także postęp
polecenia ANALYZE
. Dodatkowo, można sprawdzić integralność
działania polecenia pg_basebackup
za pomocą nowego polecenia pg_verifybackup
PostgreSQL 13 pozwala na jeszcze łatwiejszą pracę z typami danych pochodzącymi z
różnych źródeł. To wydanie dodaje funkcję
datetime()
do zapytań używających ścieżek dla typu JSON (SQL/JSON path), która konwertuje
różne typy czasu (np. w formacie ISO 8601) do wewnętrznych typów PostgreSQL.
Dodatkowo, funkcja do generowania UUID v4 gen_random_uuid()
jest teraz dostępna bez potrzeby instalowania rozszerzeń.
System partycjonowania jest bardziej elastyczny, jako że partycjonowane tabele w pełni obsługują logiczną replikację oraz wyzwalacze wierszowe BEFORE.
Składnia FETCH FIRST
w
PostgreSQL 13 jest rozszerzona i aktualnie zawiera klauzulę WITH TIES
,
która zawiera wszystkie wiersze, które, bazując na klauzuli ORDER BY
,
są związane z ostatnim wierszem wynikowego zbioru danych.
System rozszerzeń PostgreSQL jest kluczowym składnikiem stabilności bazy danych,
jako że pozwala programistom rozszerzać jej funkcjonalność. W poprzednich wydaniach
nowe rozszerzenia mogły być instalowane jedynie przez superużytkownika. W celu
polepszenia rozszerzalności, PostgreSQL 13 dodaje koncepcję
"zaufanego rozszerzenia",
która pozwala użytkownikom na instalowanie rozszerzeń, które zostały oznaczone
przez superużytkownika jako "zaufane". Niektóre wbudowane rozszerzenia są domyślnie
oznaczone jako zaufane, m.in.:
pgcrypto
,
tablefunc
,
hstore
.
Aplikacje, które wymagają bezpiecznego uwierzytelnienia, PostgreSQL 13 pozwala
klientom na żądanie
channel binding
podczas używania
uwierzytelniania SCRAM.
Dodatkowo, wrapper zewnętrznych danych PostgreSQL (foreign data wrapper)
postgres_fdw
może teraz korzystać z uwierzytelnienia opartego na certyfikatach.
PostgreSQL to najbardziej zaawansowana baza danych open source na świecie, z globalną społecznością tysięcy użytkowników, współtwórców, firm i organizacji. PostgreSQL, bazujący na ponad trzydziestu latach pracy inżynierów, został zapoczątkowany na University of California w Berkeley. Późniejszy rozwój był kontynuowany z niezrównaną prędkością. Dojrzałe cechy PostgreSQLa nie tylko dorównują głównym komercyjnym systemom baz danych, ale w wielu przypadkach przewyższają je, jeśli chodzi o zaawansowane funkcjonalności, rozszerzalność, bezpieczeństwo i stabilność.
PostgreSQL is the world's most advanced open source database, with a global community of thousands of users, contributors, companies and organizations. Built on over 30 years of engineering, starting at the University of California, Berkeley, PostgreSQL has continued with an unmatched pace of development. PostgreSQL's mature feature set not only matches top proprietary database systems, but exceeds them in advanced database features, extensibility, security, and stability.
Learn more about PostgreSQL and participate in our community at PostgreSQL.org.
For explanations of the above features and others, please see the following resources:
There are several ways you can download PostgreSQL 13, including:
Other tools and extensions are available on the PostgreSQL Extension Network.
PostgreSQL 13 comes with HTML documentation HTML documentation as well as man pages, and you can also browse the documentation online in both HTML and PDF formats.
PostgreSQL uses the PostgreSQL License, a BSD-like "permissive" license. This OSI-certified license is widely appreciated as flexible and business-friendly, since it does not restrict the use of PostgreSQL with commercial and proprietary applications. Together with multi-company support and public ownership of the code, our license makes PostgreSQL very popular with vendors wanting to embed a database in their own products without fear of fees, vendor lock-in, or changes in licensing terms.
Website
All logos are available for modification and redistribution under The PostgreSQL Licence. The PostgreSQL name and logo are trademarks of The PostgreSQL Community Association of Canada.
PostgreSQL enjoys the support of numerous companies, who sponsor developers, provide hosting resources, and give us financial support. See our sponsors page for some of these project supporters.
There is also a large community of companies offering PostgreSQL Support , from individual consultants to multinational companies.
If you wish to make a financial contribution to the PostgreSQL Global Development Group or one of the recognized community non-profit organizations, please visit our donations page.