După un an de dezvoltare noua ramură stabilă a SGBD-ului PostgreSQL 12. Actualizările pentru noua ramură pe parcursul a cinci ani până în noiembrie 2024.
Principalele :
- A fost adăugată suportul pentru „„, ale căror valori sunt calculate pe baza unei expresii care acoperă valorile altor coloane din aceeași tabelă (analog cu vizualizările, dar pentru coloane individuale). Coloanele generate pot fi de două tipuri — stocate și virtuale. În primul caz, valoarea este calculată în momentul adăugării sau modificării datelor, iar în al doilea — la fiecare citire pe baza stării curente a altor coloane. În prezent, PostgreSQL suportă doar coloane generate stocate;
- A fost adăugată posibilitatea de a efectua interogări de date din documente JSON prin intermediul , asemănătoare și definite în standardul SQL/JSON. Pentru a îmbunătăți eficiența procesării acestor expresii pentru documentele stocate în format JSONB, sunt aplicate mecanismele existente de indexare;
- Aplicarea compilatorului JIT (Just-in-Time) este activată implicit, bazată pe tehnologiile LLVM, pentru a accelera execuția unor expresii în timpul procesării interogărilor SQL. De exemplu, JIT poate fi utilizat pentru a accelera execuția expresiilor din blocurile „WHERE”, din listele de ieșire (target lists), expresiile agregate și unele operațiuni interne;
- Performanța indexării a fost semnificativ crescută. Indicii B-tree sunt optimizați pentru a funcționa în condiții de modificări frecvente ale indicilor — în testele TPC-C se observă o creștere generală a performanței și o reducere a consumului de spațiu pe disc cu o medie de 40%. Hârtia de log pentru scriere anticipată (WAL) a fost redusă pentru tipurile de indici GiST, GIN și SP-GiST. Pentru GiST, a fost adăugată posibilitatea de a crea indici-wrapper (prin expresia INCLUDE), care includ coloane suplimentare. În operația a fost asigurată suportul pentru statisticile privind cele mai tipice valori (MCV), permițând generarea unor planuri de interogare mai optime atunci când se utilizează coloane distribuite neuniform;
- Implementarea secționării (partiționării) a fost optimizată pentru interogări care acoperă tabele cu mii de secțiuni, dar se limitează la extragerea unui subset restrâns de date. Performanța adăugării de date în tabelele secționate a fost îmbunătățită prin operații INSERT și COPY, iar posibilitatea de a adăuga noi secțiuni prin „ALTER TABLE ATTACH PARTITION” este disponibilă fără a bloca execuția interogărilor;
- A fost adăugată suport pentru desfășurarea inline automată a expresiilor tabelare generalizate (, CTE), care permit utilizarea seturilor de rezultate temporare numite, definite prin operatorul WITH. Desfășurarea inline îmbunătățește performanța celor mai multe interogări, dar este aplicată deocamdată doar pentru CTE nerrecursive;
- A fost adăugat suport pentru proprietăți ale localizării „Collation”, care permit stabilirea regulilor de sortare și a metodelor de comparare având în vedere semnificația simbolurilor (de exemplu, atunci când se sortează valori numerice, se ține cont de prezența semnului minus și a punctului înainte de număr și de diferite stiluri de scriere, iar la comparare nu se ia în considerare cazul literelor și prezența diacriticelor);
- A fost adăugată suport pentru autentificarea multifactorială a clientului, în care în pg_hba.conf, pot fi combinate autentificarea prin certificat SSL (clientcert=verify-full) cu o metodă suplimentară de autentificare, cum ar fi scram-sha-256;
- A fost adăugată suport pentru criptarea canalului de comunicație în timpul autentificării prin , atât pe partea clientului, cât și pe partea serverului;
- A fost adăugată suport pentru definirea serverelor LDAP bazate pe înregistrările „DNS SRV”, dacă PostgreSQL a fost compilat cu OpenLDAP;
- A fost adăugată operațiunea „” pentru reconstruirea indexurilor fără a bloca operațiile de scriere în index;
- A fost adăugată comanda , care permite pentru o bază de date existentă activarea și dezactivarea verificării sumelor de control ale paginilor de date (anterior, această operațiune era suportată doar în timpul inițializării bazei de date);
- A fost asigurată afișarea unui indicator de progres pentru operațiile CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL și pg_checksums;
- A fost adăugată comanda „” pentru conectarea procesatorilor de noi metode de stocare a tabelelor, optimizate pentru diferite sarcini specifice. În prezent, singura metodă de acces încorporată la tabele este „heap”;
- Fișierul de configurare recovery.conf a fost combinat cu postgresql.conf. Indicatoarele pentru trecerea în starea de recuperare după o eroare sunt acum folosite fișierele recovery.signal și standby.signal.
Sursa: opennet.ro
