Pe 24 septembrie, echipa de dezvoltare a anunțat lansarea versiunii 13 a Postgresql. În această nouă versiune, accentul a fost pus, printre altele, pe creșterea performanței, accelerarea serviciilor interne de întreținere și simplificarea monitorizării bazei de date, precum și pe un control de acces mai fiabil la sistem.
Lucrările de optimizare a indexării tabelelor au continuat, în special în ceea ce privește procesarea duplicatelor în datele indexabile în arborii binari, ceea ce a permis nu doar accelerarea execuției interogărilor, ci și reducerea spațiului pe disc ocupat de index.
În plus, a fost adăugat un algoritm de sortare incrementală, care permite o sortare mai rapidă a datelor deja sortate în etapele anterioare, iar pentru unele interogări, accelerarea poate fi obținută prin aplicarea noii statistici extinse (prin comanda CREATE STATISTICS) la calcularea unui plan de execuție pașnic mai eficient.
De asemenea, s-au optimizat execuțiile interogărilor cu agregare costisitoare prin utilizarea mai amplă a agregării bazate pe hashtable și prin transferarea unei părți din datele agregate pe disc, în cazul în care acestea nu pot fi stocate în memoria operativă. Se observă o creștere semnificativă a vitezei de conectare a tabelelor situate pe diferite partiții.
De asemenea, s-a depus un efort considerabil în simplificarea operării și administrării bazelor de date Postgresql. Sarcina încorporată de „vacuuming”, adică utilizarea spațiului pe disc eliberat după ștergerea sau rescrierea rândurilor, poate acum fi efectuată în fire paralele, iar administratorul poate specifica numărul acestora. În plus, au fost adăugate noi instrumente pentru monitorizarea activității curente a bazei și au fost prevenite erorile de sincronizare a jurnalelor de scriere anticipată între master și replici, care ar fi putut duce la conflicte în cazul opririi replicilor sau să afecteze integritatea distribuției bazei de date după recuperarea pe baza datelor jurnalului.
Printre noutățile pentru dezvoltatori se numără funcția datetime(), care convertește diverse formate standard de reprezentare a timpului în tipul încorporat Postgresql; funcția de generare UUID v4 gen_random_uuid() disponibilă din cutie; normalizarea operării cu Unicode; un sistem mai flexibil pentru distribuirea datelor tabelelor pe noduri de rețea interconectate cu replicare completă la nivel logic și alte modificări în interogări și noile declanșatoare disponibile pentru replici.
Controlul accesului la baza de date este declarat ca unul dintre componentele cheie ale sistemului, iar în noua versiune s-au făcut pași mari în acest sens. Acum, instalarea extensiilor la bază poate fi efectuată doar de utilizatori privilegiați (superutilizatori). În același timp, utilizatorii obișnuiți pot instala doar acele extensii pe care le marchează ca fiind de încredere sau un număr mic de extensii considerate de încredere în mod implicit (de exemplu, pgcrypto, tablefunc sau hstore). La autentificarea utilizatorilor prin mecanismul SCRAM (când se folosește driverul libpq) acum este necesară „asocierea canalului”, iar funcția wrapper pentru date externe postgres_fdw cu versiunea 13 suportă autentificarea prin certificat.
Sursa: linux.org.ru
