Lansarea PostgreSQL 12

Echipa PostgreSQL a anunțat lansarea PostgreSQL 12, cea mai recentă versiune a sistemului de gestionare a bazelor de date relaționale open source.
PostgreSQL 12 a îmbunătățit semnificativ performanța interogărilor - mai ales atunci când lucrați cu volume mari de date și a optimizat, de asemenea, utilizarea spațiului pe disc în general.

Caracteristicile noi includ:

  • implementarea limbajului de interogare JSON Path (cea mai importantă parte a standardului SQL/JSON);
  • optimizarea execuției expresiilor comune de tabel (WITH);
  • suport pentru coloanele generate

De asemenea, comunitatea continuă să lucreze la extensibilitatea și fiabilitatea PostgreSQL, dezvoltând suport pentru internaționalizare, capabilități de autentificare și oferind modalități mai ușoare de administrare a sistemului.

Această versiune include implementarea unei interfețe pentru motoarele de stocare conectabile, care permite acum dezvoltatorilor să-și creeze propriile metode de stocare a datelor.

Imbunatatiri ale performantei

PostgreSQL 12 include îmbunătățiri semnificative de performanță și întreținere pentru sistemele de indexare și partiționare.

Indicii B-tree, tipul standard de indexare în PostgreSQL, au fost optimizați în versiunea 12 pentru sarcini de lucru care implică modificări frecvente ale indexului. Utilizarea benchmark-ului TPC-C pentru PostgreSQL 12 a demonstrat o reducere medie de 40% a utilizării spațiului și o creștere generală a performanței interogărilor.

Interogările împotriva tabelelor partiționate au primit îmbunătățiri vizibile, în special pentru tabelele formate din mii de partiții care necesită lucrul cu părți limitate ale matricelor de date. Performanța de a adăuga date la tabelele partiționate folosind INSERT și COPY a fost îmbunătățită, precum și capacitatea de a atașa o nouă partiție fără a bloca interogările.

PostgreSQL 12 a adus îmbunătățiri suplimentare indexării care au impact asupra performanței generale, inclusiv:

  • overhead redus la generarea WAL pentru tipurile de indici GiST, GIN și SP-GiST;
  • capacitatea de a crea așa-numiții indici de acoperire (clauza INCLUDE) pe indici GiST;
  • capacitatea de a efectua interogări „cel mai apropiat vecin” (căutare k-NN) folosind operatorul de distanță (<->) și folosind indici SP-GiST;
  • suport pentru colectarea statisticilor cu cele mai comune valori (MCV) folosind CREATE STATISTICS, care ajută la obținerea unor planuri de interogare mai bune atunci când se utilizează coloane ale căror valori sunt distribuite inegal.

Compilarea JIT folosind LLVM, introdusă în PostgreSQL 11, este acum activată implicit. Compilarea JIT îmbunătățește performanța atunci când lucrați cu expresii în clauze WHERE, liste țintă, agregate și unele operațiuni interne. Este disponibil dacă ați compilat PostgreSQL cu LLVM sau utilizați un pachet PostgreSQL care a fost construit cu LLVM activat.

Îmbunătățiri ale capacităților limbajului SQL și compatibilitate standard

PostgreSQL 12 a introdus capacitatea de a interoga documente JSON folosind expresii de cale JSON definite în standardul SQL/JSON. Astfel de interogări pot folosi mecanismele de indexare existente pentru documentele stocate în format JSONB pentru a prelua în mod eficient datele.

Expresiile obișnuite de tabel, cunoscute și ca interogări WITH, pot fi acum executate automat folosind înlocuirea în PostgreSQL 12, care, la rândul său, poate ajuta la îmbunătățirea performanței multor interogări existente. În noua versiune, o porțiune de substituție a unei interogări WITH poate fi executată numai dacă nu este recursivă, nu are efecte secundare și este referită o singură dată într-o porțiune ulterioară a interogării.

PostgreSQL 12 introduce suport pentru „coloanele generate”. Descris în standardul SQL, acest tip de coloană calculează o valoare pe baza conținutului altor coloane din același tabel. În această versiune, PostgreSQL acceptă „coloane generate stocate”, unde valoarea calculată este stocată pe disc.

Internaționalizare

PostgreSQL 12 extinde suportul pentru colatările ICU, permițând utilizatorilor să definească „colaționări nedeterministe”, care pot, de exemplu, să permită comparații care nu țin seama de majuscule sau de accent.

autentificare

PostgreSQL își extinde suportul pentru metode de autentificare puternică cu câteva îmbunătățiri care oferă securitate și funcționalitate suplimentare. Această versiune introduce criptarea client și server pentru autentificare prin interfețele GSSAPI, precum și capacitatea PostgreSQL de a descoperi servere LDAP atunci când PostgreSQL este compilat cu OpenLDAP.

În plus, PostgreSQL 12 acceptă acum o opțiune de autentificare cu mai mulți factori. Serverul PostgreSQL poate cere acum clientului să furnizeze un certificat SSL valid cu numele de utilizator corespunzător folosind clientcert=verify-full și să combine acest lucru cu o cerință separată a metodei de autentificare (de exemplu, scram-sha-256).

administrare

PostgreSQL 12 a introdus capacitatea de a efectua reconstrucții de index fără blocare folosind comanda REINDEX CONCURRENTLY. Acest lucru permite utilizatorilor să evite timpul de nefuncționare a DBMS în timpul reconstruirilor îndelungate ale indexului.

În plus, în PostgreSQL 12, puteți activa sau dezactiva sumele de verificare a paginii într-un cluster de închidere folosind comanda pg_checksums. Anterior, sumele de verificare a paginii, o caracteristică care ajută la verificarea integrității datelor stocate pe disc, puteau fi activate numai atunci când clusterul PostgreSQL a fost inițializat folosind initdb.

Sursa: linux.org.ru

Adauga un comentariu