PostgreSQL 12 väljalase

PostgreSQL-i meeskond teatas avatud lähtekoodiga relatsioonilise andmebaasi haldussüsteemi uusima versiooni PostgreSQL 12 väljalaskmisest.
PostgreSQL 12 on oluliselt parandanud päringu jõudlust – eriti suure andmemahuga töötamisel ning optimeerinud ka kettaruumi kasutamist üldiselt.

Uute funktsioonide hulka kuuluvad:

  • JSON Path päringukeele juurutamine (SQL/JSON standardi kõige olulisem osa);
  • tavaliste tabeliavaldiste täitmise optimeerimine (WITH);
  • loodud veergude tugi

Kogukond jätkab ka tööd PostgreSQL-i laiendatavuse ja töökindluse nimel, arendades rahvusvahelistumise tuge, autentimisvõimalusi ja pakkudes lihtsamaid viise süsteemi haldamiseks.

See väljalase hõlmab ühendatavate salvestusmootorite liidese juurutamist, mis võimaldab nüüd arendajatel luua oma andmete salvestamise meetodeid.

Toimivuse täiustused

PostgreSQL 12 sisaldab olulisi indekseerimis- ja partitsioonisüsteemide jõudluse ja hoolduse täiustusi.

B-puu indeksid, PostgreSQL-i standardne indekseerimistüüp, on versioonis 12 optimeeritud töökoormuste jaoks, mis hõlmavad sagedast indeksi muutmist. TPC-C võrdlusaluse kasutamine PostgreSQL 12 jaoks näitas ruumikasutuse vähenemist keskmiselt 40% ja päringu jõudluse üldist suurenemist.

Jaotatud tabelite päringud on saanud märgatavaid täiustusi, eriti tabelite puhul, mis koosnevad tuhandetest partitsioonidest, mis nõuavad tööd ainult piiratud osadega andmemassiividest. Täiustatud on INSERT-i ja COPY-i abil eraldatud tabelitesse andmete lisamise jõudlust, samuti on paranenud võimalus lisada uus partitsioon päringuid blokeerimata.

PostgreSQL 12 on teinud indekseerimisel täiendavaid parandusi, mis mõjutavad üldist jõudlust, sealhulgas:

  • vähenenud üldkulud WAL-i genereerimisel GiST, GIN ja SP-GiST indeksitüüpide jaoks;
  • võimalus luua GiST indeksitele nn katteindekseid (INCLUDE klausel);
  • võimalus sooritada "lähima naabri" päringuid (k-NN otsing), kasutades kaugusoperaatorit (<->) ja kasutades SP-GiST indekseid;
  • tugi kõige levinumate väärtuste (MCV) statistika kogumiseks, kasutades STATISTIKA CREATE, mis aitab saada paremaid päringuplaane, kui kasutate veerge, mille väärtused on ebaühtlaselt jaotunud.

JIT-i kompileerimine LLVM-i abil, mis on kasutusele võetud versioonis PostgreSQL 11, on nüüd vaikimisi lubatud. JIT-i kompileerimine parandab jõudlust WHERE-klauslite, sihtloendite, agregaatide ja mõnede sisemiste operatsioonide avaldistega töötamisel. See on saadaval, kui olete kompileerinud PostgreSQL-i LLVM-iga või kasutate PostgreSQL-i paketti, mis on loodud LLVM-iga.

SQL keele võimaluste ja standardse ühilduvuse täiustused

PostgreSQL 12 tutvustas võimalust teha päringuid JSON-dokumentidest, kasutades SQL/JSON-standardis määratletud JSON-teeavaldisi. Sellised päringud võivad andmete tõhusaks toomiseks kasutada olemasolevaid JSONB-vormingus salvestatud dokumentide indekseerimismehhanisme.

Levinud tabeliavaldisi, tuntud ka kui WITH-päringuid, saab nüüd automaatselt käivitada, kasutades PostgreSQL 12 asendust, mis omakorda võib aidata parandada paljude olemasolevate päringute toimivust. Uues versioonis saab WITH-päringu asendusosa täita ainult siis, kui see ei ole rekursiivne, sellel pole kõrvalmõjusid ja sellele viidatakse ainult üks kord päringu järgmises osas.

PostgreSQL 12 tutvustab "genereeritud veergude" tuge. SQL-standardis kirjeldatud veerutüüp arvutab väärtuse sama tabeli teiste veergude sisu põhjal. Selles versioonis toetab PostgreSQL "salvestatud genereeritud veerge", kus arvutatud väärtus salvestatakse kettale.

Rahvusvahelistumine

PostgreSQL 12 laiendab ICU võrdlemise tuge, võimaldades kasutajatel määratleda "mittedeterministlikke võrdlusi", mis võivad näiteks võimaldada tõstu- või rõhutundlikke võrdlusi.

Autentimine

PostgreSQL laiendab tugevate autentimismeetodite tuge mitme täiustusega, mis pakuvad täiendavat turvalisust ja funktsionaalsust. See väljalase tutvustab kliendi- ja serveripoolset krüptimist autentimiseks GSSAPI liideste kaudu, samuti PostgreSQL-i võimalust avastada LDAP-servereid, kui PostgreSQL on kompileeritud OpenLDAP-iga.

Lisaks toetab PostgreSQL 12 nüüd mitmefaktorilist autentimise võimalust. PostgreSQL-server võib nüüd nõuda kliendilt kehtiva SSL-sertifikaadi esitamist vastava kasutajanimega, kasutades käsku clientcert=verify-full, ja kombineerida seda eraldi autentimismeetodi nõudega (nt scram-sha-256).

Haldamine

PostgreSQL 12 tutvustas võimalust teha mitteblokeerivaid indeksi ümberehitusi, kasutades käsku REINDEX CONCURRENTLY. See võimaldab kasutajatel vältida DBMS-i seisakuid pika indeksi ümberehitamise ajal.

Lisaks saate PostgreSQL 12-s lubada või keelata sulgemisklastri lehtede kontrollsummad, kasutades käsku pg_checksums. Varem sai lehe kontrollsummasid (funktsiooni, mis aitab kontrollida kettale salvestatud andmete terviklikkust) lubada ainult siis, kui PostgreSQL-i klaster initsialiseeriti initdb abil.

Allikas: linux.org.ru

Lisa kommentaar