14 September 2023 - PostgreSQL Global Development Group presenterade idag PostgreSQL 16, den senaste versionen av världens mest avancerade databas byggd med öppen källkod.
PostgreSQL 16 höjer prestandan, med tydliga förbättringar för parallella databasfrågor, inläsning av data i stora volymer och logisk replikering. Den nya versionen innehåller mycket ny funktionalitet för både utvecklare och databasadministratörer, bland annat utökat stöd för SQL/JSON syntax, bättre övervakning av arbetsbelastning samt utökad flexibilitet i hur åtkomstregler kan hanteras över många databaser i större installationer.
"Medan användningsmönster för relationsdatabaser utvecklas och ändras så fortsätter PostgreSQL att förbättra prestandan för att hantera stora datamängder", säger Dave Page, medlem i PostgreSQL core team. "PostgreSQL 16 ger bättre möjligheter för att både skala up och skala ut installationer, och ger samtidigt nya och bättre insikter i hur datahantering kan optimeras."
PostgreSQL är känt för pålitlighet, stabilitet och tillförlitlighet. Med mer än 35 års utveckling som öppen källkod av en global grupp av utvecklare har PostgreSQL blivit den mest populära relationsdatabasen byggd på öppen källkod för organisationer av alla storlekar.
PostgreSQL 16 förbättrar prestandan av redan befintlig funktionalitet genom
nya optimeringar vid frågeplanering. FULL
och RIGHT
joins,
kan i denna versionen generera en mer optimerad frågeplan för frågor som
använder
aggregatfunktioner
med en DISTINCT
eller ORDER BY
klausul. Vidare kan inkrementell sortering
också användas för
SELECT DISTINCT
frågor, och
fönsterfunktioner
kan optimeras för att exekvera snabbare. RIGHT
och OUTER
"anti-joins",
vilka möjliggör att identifiera rader som inte finns i en tabell, är också
förbättrade.
Denna version innehåller förbättringar för inläsning av stora volymer med
COPY
för både
enskilda och parallella operationer, med upp till 300% prestandaförbättring
under vissa omständigheter. PostgreSQL 16 adderar också stöd för
lastbalansering
för klienter som använder libpq
, samt förbättringar kring vacuum-strategier
som minskar behovet av frysning av en hel tabell. Utöver det introduceras
även CPU-acceleration med hjälp av SIMD
för både x86 och ARM arkitekturer vilket
leder till förbättrad prestanda för hantering av ASCII och JSON strängar samt
vid sökning i arrayer och subtransaktioner.
Logisk replikering ger användare möjlighet att strömma data till andra PostgreSQL instanser eller prenumeranter som kan tolka PostgreSQL-protokollet för logisk replikering. Med PostgreSQL 16 kan användare utföra logisk replikering från en standby, vilket betyder att en standby kan publicera logiska förändringar till andra servrar. Detta ger utvecklare nya möjligheter för distribution av last, till exempel genom att avlasta den primära noden genom att använda en standby för att replikera förändringar till konsumenter av datan.
Utöver det innehåller PostgreSQL 16 många förbättringar för logisk replikering. Prenumeranter kan nu applicera stora transaktioner med hjälp av parallella processer. För tabeller som inte har en primärnyckel kan prenumeranter nu använda ett B-tree index istället för sekventiell sökning för att hitta matchande rader. I speciella fall kan användare också öka hastigheten av initial tabellsynkronisering med hjälp av binärformatet.
Det finns många förbättringar kring rättighetshantering för logisk replikering
i PostgreSQL 16, bland annat den nya
fördefinierade rollen
pg_create_subscription
, vilket ger användare möjlighet att skapa en nya
prenumerationer av logiska förändringar. Slutligen så har arbetet med att
stödja dubbelriktad logisk replikering påbörjats i och med denna versionen,
där funktionalitet för att replikera data mellan två tabeller från olika
publiceringar medges.
PostgreSQL 16 har adderat stöd för mer syntax från
SQL/JSON standarden,
bland annat konstruktörer och predikat som JSON_ARRAY()
, JSON_ARRAYAGG()
och IS JSON
. Denna versionen introducerar också möjligheten att använda
understreck som tusenseparator (t.ex 5_432_000
) och heltal i andra baser,
som 0x1538
, 0o12470
och 0b1010100111000
.
Användare av PostgreSQL 16 kan också dra nytta från nya kommandon i psql
.
Dessa inkluderar bland annat
\bind
,
vilket medger att förbereda parameteriserade frågor och med \bind
ersätta
variablerna (t.ex SELECT $1::int + $2::int \bind 1 2 \g
).
Stödet för text jämförelser är förbättrat i PostgreSQL 16, med nya regler för hur text sorteras. PostgreSQL 16 byggs ny som standard med stöd för ICU, använder standard locale från exekveringsmiljön och ger möjlighet för att skapa egna regler för jämförelser med ICU.
För att kunna optimera prestandan av databasen är det mycket viktigt att
förstå vilken påverkan I/O-operationer har på systemet. PostgreSQL 16
introducerar
pg_stat_io
,
en ny källa till mätpunkter för noggrann analys av I/O-accessmönster.
Utöver har en ny kolumn lagts till i
pg_stat_all_tables
vilken innehåller en tidstämpel för när en tabell eller ett index senast
lästes. PostgreSQL 16 förbättrar också
auto_explain
genom att inkludera värden som skickats till parameteriserade frågor, samt
utvecklar spårningen av frågor till
pg_stat_statements
och pg_stat_activity
.
PostgreSQL 16 tillåter detaljerad konfiguration av rättighetshantering och
förbättrar ett flertal säkerhetsfunktioner.
Förbättringar i denna versionen är hanteringen av
pg_hba.conf
och
pg_ident.conf
med bland annat stöd för reguljära uttryck för matchning av användarnamn och
databasnamn and include
direktiv för externa konfigurationsfiler.
Nytt i denna versionen är ett flertal säkerhetsorienterade anslutningsparametrar
för klienter, bland dem require_auth
vilken ger klienter möjlighet att
specificera vilka autentiseringsparametrar de är villiga att acceptera från
en server, och
sslrootcert="system"
,
vilken indikerar att PostgreSQL ska använda operativsystemets källa för
certifikatsutfärdare (CA). Utöver det stöds identitetsdelegering för
Kerberos, vilket ger tilläggsmoduler såsom
postgres_fdw
och
dblink
möjlighet att
använda autentiserade identiteter för att anslutningar till tjänster.
PostgreSQL är världens mest avancerade databas byggd på öppen källkod, med tusentals användare, utvecklare, företag och organisationer världen över. Med över 35 års utveckling, med start på University of California, Berkeley, har PostgreSQL fortsatt utvecklas med en enastående fart. PostgreSQL:s väl etablerade funktioner är inte bara jämförbara med proprietära databassystem, utan överträffar dem när det gäller avancerade databas funktioner, utbyggbarhet, säkerhet och stabilitet.
PostgreSQL är världens mest avancerade databas byggd på öppen källkod, med tusentals användare, utvecklare, företag och organisationer världen över. Med över 35 års utveckling, med start på University of California, Berkeley, har PostgreSQL fortsatt utvecklas med en enastående fart. PostgreSQL:s väl etablerade funktioner är inte bara jämförbara med proprietära databassystem, utan överträffar dem när det gäller avancerade databas funktioner, utbyggbarhet, säkerhet och stabilitet.
Learn more about PostgreSQL and participate in our community at PostgreSQL.org.
För förklaringar och dokumentation av de ovan nämnda funktionerna, och mer, se följande resurser:
PostgreSQL 16 kan laddas ner på ett flertal olika sätt, bland annat:
Andra verktyg och tilläggsmoduler finns tillgängliga på PostgreSQL Extension Network.
PostgreSQL 16 levereras med dokumentation i HTML-format samt man-sidor, och dokumentationen kan också läsas online i både HTML-format och som PDF.
PostgreSQL använder PostgreSQL Licensen, en BSD-liknande "tillåtande" licens. Denna OSI-certifierade licens anses flexibel och företagsvänlig eftersom den inte begränsar användningen av PostgreSQL i kommersiella eller proprietära applikationer. Licensen, tillsammans med brett stöd från många företag och ett publikt ägande av koden, gör att PostgreSQL är väldigt populär bland tillverkare som vill bygga in en databas i sin produkt utan att riskera avgifter, inlåsning eller förändrade licensvillkor.
Hemsida
E-post
Postgres, PostgreSQL, och elefantlogotypen (Slonik) är av PostgreSQL Community Association registrerade varumärken. Användning av dess varumärken måste följa dess varumärkespolicy.
PostgreSQL projektet stöttas av ett stort antal företag som bland annat sponsrar utvecklare, erbjuder infrastruktur och ger finansiellt stöd. Se listan över PostgreSQL:s sponsors för mer information om vem de är.
Det finns också en stor grupp företag som säljer PostgreSQL Support, allt från små konsultbolag till multinationella företag.
För att ge ett ekonomiskt bidrag till PostgreSQL Global Development Group eller en av de officiella ideella organisationerna, se sidan för donations för mer information.