PostgreSQL 12 vrystelling

Die PostgreSQL-span het die vrystelling van PostgreSQL 12 aangekondig, die nuutste weergawe van die oopbron-relasionele databasisbestuurstelsel.
PostgreSQL 12 het navraagwerkverrigting aansienlik verbeter - veral wanneer daar met groot volumes data gewerk word, en het ook die gebruik van skyfspasie in die algemeen geoptimaliseer.

Nuwe kenmerke sluit in:

  • implementering van die JSON Path-navraagtaal (die belangrikste deel van die SQL/JSON-standaard);
  • optimalisering van uitvoering van algemene tabeluitdrukkings (WITH);
  • ondersteuning vir gegenereerde kolomme

Die gemeenskap gaan ook voort om te werk aan die uitbreidbaarheid en betroubaarheid van PostgreSQL, die ontwikkeling van ondersteuning vir internasionalisering, verifikasievermoëns, en die verskaffing van makliker maniere om die stelsel te administreer.

Hierdie vrystelling sluit die implementering van 'n koppelvlak vir inpropbare bergingsenjins in, wat ontwikkelaars nou toelaat om hul eie databergingsmetodes te skep.

Prestasieverbeterings

PostgreSQL 12 bevat aansienlike prestasie- en instandhoudingverbeterings vir indeksering en partisiestelsels.

B-boom-indekse, die standaard-indekseringstipe in PostgreSQL, is in weergawe 12 geoptimaliseer vir werkladings wat gereelde indekswysigings behels. Die gebruik van die TPC-C-maatstaf vir PostgreSQL 12 het 'n gemiddelde vermindering van 40% in ruimtegebruik en 'n algehele toename in navraagprestasie getoon.

Navrae teen gepartisioneerde tabelle het merkbare verbeterings gekry, veral vir tabelle wat uit duisende partisies bestaan ​​wat vereis dat slegs met beperkte dele van die dataskikkings gewerk word. Die werkverrigting om data by gepartisioneerde tabelle by te voeg deur INSERT en COPY te gebruik, is verbeter, sowel as die vermoë om 'n nuwe partisie aan te heg sonder om navrae te blokkeer.

PostgreSQL 12 het bykomende verbeterings aan indeksering aangebring wat algehele prestasie beïnvloed, insluitend:

  • verminderde bokoste wanneer WAL gegenereer word vir GiST-, GIN- en SP-GiST-indekstipes;
  • die vermoë om sogenaamde dekkingsindekse (INCLUDIE-klousule) op GiST-indekse te skep;
  • die vermoë om "naaste buur"-navrae (k-NN-soektog) uit te voer deur die afstandoperateur (<->) en SP-GiST-indekse te gebruik;
  • ondersteuning vir die insameling van mees algemene waarde (MCV) statistieke met behulp van CREATE STATISTICS, wat help om beter navraagplanne te verkry wanneer kolomme gebruik word waarvan die waardes oneweredig versprei is.

JIT-samestelling met behulp van LLVM, bekendgestel in PostgreSQL 11, is nou by verstek geaktiveer. JIT-samestelling verbeter werkverrigting wanneer daar met uitdrukkings in WHERE-klousules, teikenlyste, aggregate en sommige interne bewerkings gewerk word. Dit is beskikbaar as jy PostgreSQL met LLVM saamgestel het of 'n PostgreSQL-pakket gebruik wat gebou is met LLVM geaktiveer.

Verbeterings aan SQL-taalvermoëns en standaardversoenbaarheid

PostgreSQL 12 het die vermoë bekendgestel om JSON-dokumente te bevraagteken met behulp van JSON-paduitdrukkings wat in die SQL/JSON-standaard gedefinieer is. Sulke navrae kan bestaande indekseringsmeganismes gebruik vir dokumente wat in JSONB-formaat gestoor is om data doeltreffend te herwin.

Algemene tabeluitdrukkings, ook bekend as WITH-navrae, kan nou outomaties uitgevoer word deur vervanging in PostgreSQL 12 te gebruik, wat op sy beurt kan help om die werkverrigting van baie bestaande navrae te verbeter. In die nuwe weergawe kan 'n vervangingsgedeelte van 'n WITH-navraag slegs uitgevoer word as dit nie rekursief is nie, geen newe-effekte het nie en slegs een keer in 'n daaropvolgende gedeelte van die navraag verwys word.

PostgreSQL 12 stel ondersteuning bekend vir "gegenereerde kolomme". Hierdie kolomtipe, beskryf in die SQL-standaard, bereken 'n waarde gebaseer op die inhoud van ander kolomme in dieselfde tabel. In hierdie weergawe ondersteun PostgreSQL "gestoorde gegenereerde kolomme", waar die berekende waarde op skyf gestoor word.

Internasionalisering

PostgreSQL 12 brei ondersteuning uit vir ICU-kollasies deur gebruikers toe te laat om "nie-deterministiese samestellings" te definieer wat byvoorbeeld hoofletter-onsensitiewe of aksent-onsensitiewe vergelykings kan toelaat.

verifikasie

PostgreSQL brei sy ondersteuning uit vir sterk verifikasiemetodes met verskeie verbeterings wat bykomende sekuriteit en funksionaliteit bied. Hierdie vrystelling stel kliënt- en bedienerkant-enkripsie bekend vir verifikasie oor GSSAPI-koppelvlakke, sowel as die vermoë vir PostgreSQL om LDAP-bedieners te ontdek wanneer PostgreSQL met OpenLDAP saamgestel word.

Boonop ondersteun PostgreSQL 12 nou 'n multi-faktor verifikasie opsie. Die PostgreSQL-bediener kan nou van die kliënt vereis om 'n geldige SSL-sertifikaat met die ooreenstemmende gebruikersnaam te verskaf deur clientcert=verify-full te gebruik, en dit kombineer met 'n aparte stawingmetodevereiste (bv. scram-sha-256).

administrasie

PostgreSQL 12 het die vermoë bekendgestel om nie-blokkerende indeksherbouings uit te voer met die REINDEX CONCURRENTLY-opdrag. Dit laat gebruikers toe om DBMS-stilstand tydens lang indeksherbouings te vermy.

Boonop kan u in PostgreSQL 12 bladsykontrolesomme in 'n afsluitkluster aktiveer of deaktiveer deur die pg_checksums-opdrag te gebruik. Voorheen kon bladsykontrolesomme, 'n kenmerk wat help om die integriteit van data wat op skyf gestoor is, te verifieer, slegs geaktiveer word wanneer die PostgreSQL-kluster geïnisialiseer is met initdb.

Bron: linux.org.ru

Voeg 'n opmerking