PostgreSQL 12 release

It PostgreSQL-team hat de frijlitting fan PostgreSQL 12 oankundige, de lêste ferzje fan it iepen boarne relaasje-databasebehearsysteem.
PostgreSQL 12 hat query-prestaasjes signifikant ferbettere - benammen as jo wurkje mei grutte folumes gegevens, en hat ek it gebrûk fan skiifromte yn 't algemien optimalisearre.

Nije funksjes omfetsje:

  • ymplemintaasje fan de JSON Path query taal (it wichtichste diel fan de SQL / JSON standert);
  • optimalisaasje fan útfiering fan mienskiplike tabel útdrukkingen (WITH);
  • stipe foar oanmakke kolommen

De mienskip bliuwt ek wurkje oan 'e útwreidzjen en betrouberens fan PostgreSQL, it ûntwikkeljen fan stipe foar ynternasjonalisearring, autentikaasjemooglikheden en it leverjen fan maklikere manieren om it systeem te behearjen.

Dizze release omfettet de ymplemintaasje fan in ynterface foar pluggable opslachmotoren, wêrtroch ûntwikkelders no har eigen metoaden foar gegevensopslach kinne oanmeitsje.

Performance ferbetterings

PostgreSQL 12 omfettet signifikante prestaasjes en ûnderhâldsferbetteringen foar yndeksearjen en partitionearjen fan systemen.

B-tree-yndeksen, it standert yndeksearjende type yn PostgreSQL, binne optimalisearre yn ferzje 12 foar wurkloads dy't faak yndekswizigingen befetsje. It brûken fan de TPC-C-benchmark foar PostgreSQL 12 toande in gemiddelde 40% reduksje yn romtegebrûk en in algemiene ferheging fan query-prestaasjes.

Queries tsjin partitioned tabellen hawwe krigen merkbere ferbetterings, benammen foar tabellen besteande út tûzenen partysjes dy't fereaskje wurkjen mei mar beheinde dielen fan de gegevens arrays. De prestaasjes fan it tafoegjen fan gegevens oan partitioneare tabellen mei INSERT en COPY binne ferbettere, lykas de mooglikheid om in nije partysje te heakjen sûnder fragen te blokkearjen.

PostgreSQL 12 hat ekstra ferbetterings makke foar yndeksearring dy't ynfloed hawwe op de totale prestaasjes, ynklusyf:

  • redusearre overhead by it generearjen fan WAL foar GiST-, GIN- en SP-GiST-yndekstypen;
  • de mooglikheid om saneamde dekkende yndeksen (INCLUDE clause) te meitsjen op GiST-yndeksen;
  • de mooglikheid om "nearest buor"-fragen út te fieren (k-NN-sykjen) mei de ôfstânsoperator (<->) en mei SP-GiST-yndeksen;
  • Stipe foar it sammeljen fan statistiken mei de measte mienskiplike wearden (MCV) mei CREATE STATISTICS, wat helpt om bettere queryplannen te krijen by it brûken fan kolommen wêrfan de wearden ûngelyk ferdield binne.

JIT-kompilaasje mei LLVM, yntrodusearre yn PostgreSQL 11, is no standert ynskeakele. JIT-kompilaasje ferbetteret prestaasjes by it wurkjen mei útdrukkingen yn WHERE-klauselen, doellisten, aggregaten en guon ynterne operaasjes. It is beskikber as jo PostgreSQL mei LLVM kompilearre hawwe of in PostgreSQL-pakket brûke dat is boud mei LLVM ynskeakele.

Ferbetterings oan SQL-taalmooglikheden en standertkompatibiliteit

PostgreSQL 12 yntrodusearre de mooglikheid om JSON-dokuminten te freegjen mei JSON-paad-útdrukkingen definieare yn 'e SQL / JSON-standert. Sokke fragen kinne besteande yndeksearringsmeganismen brûke foar dokuminten opslein yn JSONB-formaat om gegevens effisjint op te heljen.

Algemiene tabel-útdrukkingen, ek wol WITH-queries neamd, kinne no automatysk wurde útfierd mei substitúsje yn PostgreSQL 12, wat op syn beurt kin helpe om de prestaasjes fan in protte besteande queries te ferbetterjen. Yn 'e nije ferzje kin in substitúsjediel fan in WITH-fraach allinich wurde útfierd as it net rekursyf is, gjin side-effekten hat en mar ien kear ferwiisd wurdt yn in folgjende diel fan 'e query.

PostgreSQL 12 yntroduseart stipe foar "generearre kolommen". Beskreaun yn de SQL standert, dit kolom type berekkent in wearde basearre op de ynhâld fan oare kolommen yn deselde tabel. Yn dizze ferzje stipet PostgreSQL "opslein oanmakke kolommen", wêr't de berekkene wearde op skiif opslein wurdt.

Ynternasjonalisaasje

PostgreSQL 12 wreidet stipe út foar ICU-kollaasjes troch brûkers te tastean "net-deterministyske kollaasjes" te definiearjen dy't bygelyks gefal-ûngefoelige of aksint-ûngefoelige fergelikingen kinne tastean.

Ferifikaasje

PostgreSQL wreidet syn stipe út foar sterke autentikaasjemetoaden mei ferskate ferbetterings dy't ekstra feiligens en funksjonaliteit leverje. Dizze útjefte yntroduseart fersifering oan client-side en server-side foar autentikaasje oer GSSAPI-ynterfaces, lykas de mooglikheid foar PostgreSQL om LDAP-tsjinners te ûntdekken as PostgreSQL is kompilearre mei OpenLDAP.

Derneist stipet PostgreSQL 12 no in opsje foar multi-faktor-ferifikaasje. De PostgreSQL-tsjinner kin no de kliïnt fereaskje om in jildich SSL-sertifikaat te leverjen mei de oerienkommende brûkersnamme mei clientcert=verify-full, en dit kombinearje mei in aparte ferifikaasjemetoade-eask (bgl. scram-sha-256).

Bestjoer

PostgreSQL 12 yntrodusearre de mooglikheid om net-blokkearjende yndeks opnij op te bouwen mei it kommando REINDEX CONCURRENTLY. Hjirmei kinne brûkers DBMS-downtime foarkomme by lange yndeksferbouwingen.

Derneist kinne jo yn PostgreSQL 12 sidekontrôlesummen ynskeakelje of útskeakelje yn in shutdowncluster mei it kommando pg_checksums. Earder koene sidekontrôlesummen, in funksje dy't helpt om de yntegriteit fan gegevens op skiif te kontrolearjen, allinich ynskeakele wurde as it PostgreSQL-kluster waard inisjalisearre mei initdb.

Boarne: linux.org.ru

Add a comment