PostgreSQL 12 DBMS-utgivelse

Etter et år med utvikling publisert ny stabil gren av PostgreSQL 12 DBMS. Oppdateringer for den nye grenen vil komme ut i fem år frem til november 2024.

Den viktigste innovasjoner:

  • Lagt til støtte for "genererte kolonner", hvis verdi beregnes basert på et uttrykk som dekker verdiene til andre kolonner i samme tabell (ligner på visninger, men for individuelle kolonner). De genererte kolonnene kan være av to typer - lagrede og virtuelle. I det første tilfellet beregnes verdien på det tidspunktet data legges til eller endres, og i det andre tilfellet beregnes verdien for hver avlesning basert på gjeldende tilstand for andre kolonner. For øyeblikket støtter PostgreSQL bare lagrede genererte kolonner;
  • Lagt til muligheten til å spørre etter data fra JSON-dokumenter ved hjelp av Baneuttrykk, minner XPath og definert i SQL/JSON-standarden. Eksisterende indekseringsmekanismer brukes for å forbedre effektiviteten ved behandling av slike uttrykk for dokumenter som er lagret i JSONB-formatet;
  • Aktivert som standard er bruken av en JIT (Just-in-Time) kompilator basert på LLVM-utvikling for å fremskynde utførelsen av enkelte uttrykk under SQL-spørringsbehandling. For eksempel brukes JIT til å fremskynde utførelsen av uttrykk i WHERE-blokker, mållister, aggregerte uttrykk og enkelte interne operasjoner;
  • Indekseringsytelsen er betydelig forbedret. B-tree-indekser er optimalisert for å fungere i miljøer der indekser endres ofte - TPC-C-tester viser en generell økning i ytelse og en gjennomsnittlig reduksjon i diskplassforbruk på 40 %. Redusert overhead ved generering av fremskrivningslogg (WAL) for GiST, GIN og SP-GiST indekstyper. For GiST er muligheten til å lage wrapper-indekser (via INCLUDE-uttrykket) som inkluderer flere kolonner lagt til. I drift SKAP STATISTIKK Gir støtte for Most Common Value (MCV)-statistikk for å generere mer optimale spørringsplaner ved bruk av ujevnt fordelte kolonner;
  • Partisjoneringsimplementeringen er optimalisert for spørringer som spenner over tabeller med tusenvis av partisjoner, men er begrenset til å velge et begrenset delsett av data. Ytelsen for å legge til data til partisjonerte tabeller ved å bruke INSERT- og COPY-operasjoner er økt, og det er også mulig å legge til nye seksjoner gjennom "ALTER TABLE ATTACH PARTITION" uten å blokkere kjøring av spørringer;
  • Lagt til støtte for automatisk innebygd utvidelse av generaliserte tabelluttrykk (Vanlig tabelluttrykk, CTE) som tillater bruk av midlertidige navngitte resultatsett spesifisert ved hjelp av WITH-setningen. Innebygd distribusjon kan forbedre ytelsen til de fleste spørringer, men brukes foreløpig bare for ikke-rekursive CTE-er;
  • Lagt til støtte ikke-deterministisk egenskapene til lokaliteten "Samling", som lar deg angi sorteringsregler og samsvarsmetoder som tar hensyn til betydningen av tegn (for eksempel når du sorterer digitale verdier, tilstedeværelsen av et minus og en prikk foran et tall og forskjellige typer stavemåten tas i betraktning, og når man sammenligner, tas det ikke hensyn til tilfellet av tegn og tilstedeværelsen av et aksenttegn) ;
  • Lagt til støtte for multifaktor klientautentisering, der du i pg_hba.conf kan kombinere SSL-sertifikatautentisering (clientcert=verify-full) med en ekstra autentiseringsmetode som scram-sha-256 for autentisering;
  • Lagt til støtte for kryptering av kommunikasjonskanalen ved autentisering via GSSAPI, både på klientsiden og på serversiden;
  • Lagt til støtte for å bestemme LDAP-servere basert på "DNS SRV"-poster hvis PostgreSQL er bygget med OpenLDAP;
  • Lagt til operasjon "REINDEKSER SAMTIDIGT» å gjenoppbygge indekser uten å blokkere skriveoperasjoner til indeksen;
  • Lagt til kommando pg_sjekksum, som lar deg aktivere eller deaktivere sjekksummer for datasider for en eksisterende database (tidligere ble denne operasjonen kun støttet under initialisering av databasen);
  • Levert utdata av fremdriftsindikator for operasjoner CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL og pg_checksums;
  • Lagt til kommando "LAG TILGANGSMETODE» å koble til behandlere for nye tabelllagringsmetoder optimalisert for ulike spesifikke oppgaver. For øyeblikket er den eneste innebygde tabelltilgangsmetoden "heap";
  • recovery.conf-konfigurasjonsfilen er slått sammen med postgresql.conf. Som indikatorer på overgang til tilstanden av utvinning etter en feil, nå bør bruk recovery.signal og standby.signal-filer.

Kilde: opennet.ru

Legg til en kommentar