Lansarea PostgreSQL 12

După un an de dezvoltare publicat noua ramură stabilă a DBMS PostgreSQL 12 pentru noua ramură va ieși timp de cinci ani până în noiembrie 2024.

Principalul inovații:

  • S-a adăugat suport pentru „coloane generate", a cărui valoare este calculată pe baza unei expresii care acoperă valorile altor coloane din același tabel (similar vizualizărilor, dar pentru coloane individuale). Coloanele generate pot fi de două tipuri - stocate și virtuale. În primul caz, valoarea este calculată în momentul în care datele sunt adăugate sau modificate, iar în al doilea caz, valoarea este calculată pentru fiecare citire pe baza stării curente a altor coloane. În prezent, PostgreSQL acceptă numai coloanele generate stocate;
  • S-a adăugat posibilitatea de a interoga datele din documente JSON folosind Expresii de cale, reminiscentă XPath și definit în standardul SQL/JSON. Mecanismele de indexare existente sunt folosite pentru a îmbunătăți eficiența procesării unor astfel de expresii pentru documentele stocate în format JSONB;
  • Este activată implicit utilizarea unui compilator JIT (Just-in-Time) bazat pe dezvoltările LLVM pentru a accelera execuția unor expresii în timpul procesării interogărilor SQL. De exemplu, JIT este folosit pentru a accelera execuția expresiilor în interiorul blocurilor WHERE, a listelor țintă, a expresiilor agregate și a unor operațiuni interne;
  • Performanța de indexare a fost îmbunătățită semnificativ. Indicii B-tree sunt optimizați pentru a funcționa în medii în care indicii se modifică frecvent - testele TPC-C arată o creștere generală a performanței și o reducere medie a consumului de spațiu pe disc de 40%. S-a redus supraîncărcarea la generarea jurnalului de scriere anticipată (WAL) pentru tipurile de index GiST, GIN și SP-GiST. Pentru GiST, a fost adăugată capacitatea de a crea indecși de wrapper (prin intermediul expresiei INCLUDE) care includ coloane suplimentare. In operatie CREAȚI STATISTICI Oferă suport pentru statisticile Cele mai comune valori (MCV) pentru a genera planuri de interogare mai optime atunci când se utilizează coloane distribuite neuniform;
  • Implementarea partiționării este optimizată pentru interogări care acoperă tabele cu mii de partiții, dar se limitează la selectarea unui subset limitat de date. Performanța de adăugare a datelor la tabelele partiționate folosind operațiunile INSERT și COPY a fost crescută și este, de asemenea, posibilă adăugarea de noi secțiuni prin „ALTER TABLE ATTACH PARTITION” fără a bloca execuția interogării;
  • S-a adăugat suport pentru extinderea automată inline a expresiilor de tabel generalizate (Expresie comună de tabel, CTE) care permit utilizarea seturilor de rezultate denumite temporare specificate folosind instrucțiunea WITH. Implementarea inline poate îmbunătăți performanța majorității interogărilor, dar în prezent este utilizată numai pentru CTE-uri nerecursive;
  • Sprijin adăugat nedeterminist proprietățile localității „Collation”, care vă permite să setați reguli de sortare și metode de potrivire ținând cont de semnificația caracterelor (de exemplu, la sortarea valorilor digitale, prezența unui minus și a unui punct în fața unui număr și a diferitelor tipuri de ortografie sunt luate în considerare, iar la comparare nu se ia în considerare cazul caracterelor și prezența unui semn de accent) ;
  • S-a adăugat suport pentru autentificarea client multi-factor, în care în pg_hba.conf puteți combina autentificarea cu certificat SSL (clientcert=verify-full) cu o metodă suplimentară de autentificare, cum ar fi scram-sha-256 pentru autentificare;
  • S-a adăugat suport pentru criptarea canalului de comunicație la autentificare prin GSSAPI, atât pe partea client, cât și pe partea server;
  • S-a adăugat suport pentru determinarea serverelor LDAP pe baza înregistrărilor „DNS SRV” dacă PostgreSQL este construit cu OpenLDAP;
  • Operație adăugată "REINDEXARE CONCURS» pentru a reconstrui indecși fără a bloca operațiunile de scriere pe index;
  • Comandă adăugată pg_checksums, care vă permite să activați sau să dezactivați verificarea sumelor de control ale paginilor de date pentru o bază de date existentă (anterior această operațiune era acceptată numai în timpul inițializării bazei de date);
  • A furnizat rezultatul indicatorului de progres pentru operațiunile CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL și pg_checksums;
  • S-a adăugat comanda "CREAȚI METODĂ DE ACCES» pentru a conecta handleri pentru noi metode de stocare a meselor optimizate pentru diverse sarcini specifice. În prezent, singura metodă de acces la tabel încorporată este „heap”;
  • Fișierul de configurare recovery.conf a fost îmbinat cu postgresql.conf. Ca indicatori ai tranziției la starea de recuperare după un eșec, acum utilizați fișierele recovery.signal și standby.signal.

Sursa: opennet.ru

Adauga un comentariu