PostgreSQL 12 utgivelse

PostgreSQL-teamet har annonsert utgivelsen av PostgreSQL 12, den nyeste versjonen av åpen kildekode relasjonsdatabaseadministrasjonssystemet.
PostgreSQL 12 har betydelig forbedret spørringsytelse - spesielt når du arbeider med store datamengder, og har også optimert bruken av diskplass generelt.

Nye funksjoner inkluderer:

  • implementering av JSON Path-spørringsspråket (den viktigste delen av SQL/JSON-standarden);
  • optimalisering av utførelse av vanlige tabelluttrykk (WITH);
  • støtte for genererte kolonner

Fellesskapet fortsetter også å jobbe med utvidbarheten og påliteligheten til PostgreSQL, utvikler støtte for internasjonalisering, autentiseringsmuligheter og gir enklere måter å administrere systemet på.

Denne utgivelsen inkluderer implementering av et grensesnitt for pluggbare lagringsmotorer, som nå lar utviklere lage sine egne datalagringsmetoder.

Ytelsesforbedringer

PostgreSQL 12 inkluderer betydelige ytelses- og vedlikeholdsforbedringer for indekserings- og partisjoneringssystemer.

B-tree-indekser, standard indekseringstypen i PostgreSQL, har blitt optimalisert i versjon 12 for arbeidsbelastninger som involverer hyppige indeksendringer. Bruk av TPC-C-standarden for PostgreSQL 12 viste en gjennomsnittlig 40 % reduksjon i plassbruk og en generell økning i søkeytelse.

Spørringer mot partisjonerte tabeller har fått merkbare forbedringer, spesielt for tabeller som består av tusenvis av partisjoner som krever arbeid med bare begrensede deler av datamatrisene. Ytelsen for å legge til data til partisjonerte tabeller ved å bruke INSERT og COPY har blitt forbedret, samt muligheten til å legge til en ny partisjon uten å blokkere spørringer.

PostgreSQL 12 har gjort ytterligere forbedringer av indeksering som påvirker den generelle ytelsen, inkludert:

  • redusert overhead ved generering av WAL for GiST, GIN og SP-GiST indekstyper;
  • muligheten til å lage såkalte dekkende indekser (INCLUDE-klausul) på GiST-indekser;
  • muligheten til å utføre "nærmeste nabo"-spørringer (k-NN-søk) ved å bruke avstandsoperatøren (<->) og bruke SP-GiST-indekser;
  • støtte for innsamling av mest-vanlig verdi (MCV)-statistikk ved å bruke CREATE STATISTICS, som bidrar til å oppnå bedre spørringsplaner når du bruker kolonner hvis verdier er ujevnt fordelt.

JIT-kompilering ved hjelp av LLVM, introdusert i PostgreSQL 11, er nå aktivert som standard. JIT-kompilering forbedrer ytelsen når du arbeider med uttrykk i WHERE-klausuler, mållister, aggregater og enkelte interne operasjoner. Den er tilgjengelig hvis du har kompilert PostgreSQL med LLVM eller bruker en PostgreSQL-pakke som ble bygget med LLVM aktivert.

Forbedringer av SQL-språkfunksjoner og standardkompatibilitet

PostgreSQL 12 introduserte muligheten til å spørre etter JSON-dokumenter ved å bruke JSON-baneuttrykk definert i SQL/JSON-standarden. Slike spørringer kan utnytte eksisterende indekseringsmekanismer for dokumenter som er lagret i JSONB-format for å effektivt hente data.

Vanlige tabelluttrykk, også kjent som WITH-spørringer, kan nå kjøres automatisk ved hjelp av substitusjon i PostgreSQL 12, som igjen kan bidra til å forbedre ytelsen til mange eksisterende spørringer. I den nye versjonen kan en substitusjonsdel av en WITH-spørring kun utføres hvis den ikke er rekursiv, ikke har noen bivirkninger og kun refereres én gang i en påfølgende del av spørringen.

PostgreSQL 12 introduserer støtte for "genererte kolonner". Denne kolonnetypen, beskrevet i SQL-standarden, beregner en verdi basert på innholdet i andre kolonner i samme tabell. I denne versjonen støtter PostgreSQL "lagrede genererte kolonner", der den beregnede verdien lagres på disk.

Internasjonalisering

PostgreSQL 12 utvider støtten for ICU-kollasjoner ved å tillate brukere å definere "ikke-deterministiske kollasjoner" som for eksempel kan tillate sammenligninger uten store og små bokstaver eller aksentufølsomme.

Autentisering

PostgreSQL utvider støtten for sterke autentiseringsmetoder med flere forbedringer som gir ekstra sikkerhet og funksjonalitet. Denne utgivelsen introduserer klient- og serversidekryptering for autentisering over GSSAPI-grensesnitt, samt muligheten for PostgreSQL å oppdage LDAP-servere når PostgreSQL er kompilert med OpenLDAP.

I tillegg støtter PostgreSQL 12 nå et alternativ for multifaktorautentisering. PostgreSQL-serveren kan nå kreve at klienten oppgir et gyldig SSL-sertifikat med det tilsvarende brukernavnet ved å bruke clientcert=verify-full, og kombinere dette med et eget krav til autentiseringsmetode (f.eks. scram-sha-256).

administrasjon

PostgreSQL 12 introduserte muligheten til å utføre ikke-blokkerende indeksombygginger ved å bruke REINDEX CONCURRENTLY-kommandoen. Dette lar brukere unngå nedetid for DBMS under lange indeksombygginger.

I tillegg, i PostgreSQL 12, kan du aktivere eller deaktivere sidesjekksummer i en avslutningsklynge ved å bruke kommandoen pg_checksums. Tidligere kunne sidekontrollsummer, en funksjon som hjelper å bekrefte integriteten til data lagret på disken, bare aktiveres når PostgreSQL-klyngen ble initialisert ved hjelp av initdb.

Kilde: linux.org.ru

Legg til en kommentar