Grupi i zhvilluesve të PostgreSQL njoftoi daljen e PostgreSQL 12, versioni më i ri i sistemit të menaxhimit të bazave të të dhënave me burim të hapur.
Në PostgreSQL 12, është përmirësuar ndjeshëm performanca e pyetjeve – veçanërisht përsa i përket punës me sasi të mëdha të të dhënave, si dhe është optimizuar përdorimi i hapësirës së diskut në përgjithësi.
Mënyrat e reja:
- implementimi i gjuhës së pyetjeve JSON Path (një pjesë e rëndësishme e standardit SQL/JSON);
- optimizimi i ekzekutimit të shprehjeve të zakonshme të tabelave (WITH);
- mbështetje për kolona të gjeneruara
Po ashtu, komuniteti vazhdon punën mbi zgjerueshmërinë dhe besueshmërinë e PostgreSQL, duke zhvilluar mbështetje për internacionalizimin, mundësitë e autentikimit dhe duke ofruar më shumë mundësi për administrimin e sistemit.
Ky version përfshin implementimin e ndërfaqes së motorëve të ruajtjes që tani lejon zhvilluesit të krijojnë metodat e tyre të ruajtjes së të dhënave.
Përmirësime të performancës
PostgreSQL 12 përfshin përmirësime të konsiderueshme të performancës dhe procedurave të mirëmbajtjes për sistemet e indeksimit dhe ndarjes.
Indekset B-tree – tipi standard i indeksimit në PostgreSQL, janë optimizuar në versionin 12 për ngarkesa që parashikojnë modifikime të shpeshta të indekseve. Përdorimi i testit referues TPC-C për PostgreSQL 12 tregoi një reduktim të përdorimit të hapësirës mesatarisht me 40% dhe një rritje të përgjithshme të performancës së pyetjeve.
Pyetjet për tabelat e ndara janë përmirësuar dukshëm, veçanërisht për tabelat që përbëhen nga mijëra seksione, që parashikojnë punë vetëm me pjesë të kufizuara të grupeve të të dhënave. Performanca e shtimit të të dhënave në tabelat e ndara përmes INSERT dhe COPY është përmirësuar, si dhe mundësia e lidhjes së një seksioni të ri pa bllokuar pyetjet në përputhje.
Në PostgreSQL 12 janë bërë përmirësime të tjera në indeksim, që ndikojnë në performancën e përgjithshme, duke përfshirë:
- uljen e kostove gjatë gjenerimit të WAL për llojet e indekseve GiST, GIN dhe SP-GiST;
- mundësinë e krijimit të indekseve të quajtura mbuluese (covering indexes, propozimi INCLUDE) për indekset GiST;
- mundësinë e ekzekutimit të pyetjeve për "fqinjët më të afërt" (k-NN search) duke përdorur operatorin e distancës (↔) dhe duke përdorur indekset SP-GiST;
- mbështetje për mbledhjen e statistikave të vlerave më të zakonshme (most-common value, MCV) përmes CREATE STATISTICS, që ndihmon në marrjen e planeve më të mira të ekzekutimit të pyetjeve kur përdoren kolona me vlera që janë të shpërndara në mënyrë të paparashikueshme.
Kompilimi JIT me përdorimin e LLVM, që u shfaq në PostgreSQL 11, tani është përfshirë si parazgjedhje. Kompilimi JIT lejon përmirësimin e performancës gjatë punës me shprehjet në kushtet WHERE, listat e objekteve, agregatët dhe disa operacione të brendshme. Ai është i disponueshëm nëse e keni kompiluar PostgreSQL me LLVM ose po përdorni një paketë PostgreSQL që është krijuar me LLVM të aktivizuar.
Përmirësime në mundësitë e gjuhës SQL dhe përputhshmëria me standardin
Në PostgreSQL 12, është shtuar mundësia për të ekzekutuar pyetje në dokumentet JSON duke përdorur shprehjet e rrugës JSON që janë të përcaktuara në standardin SQL/JSON. Këto pyetje mund të përdorin mekanizmat ekzistues të indeksimit për dokumentet e ruajtura në formatin JSONB për nxjerrjen efikase të të dhënave.
Shprehjet e zakonshme të tabelave, të njohura gjithashtu si pyetje me WITH, tani mund të ekzekutohen automatikisht me zëvendësim në PostgreSQL 12, që, nga ana e saj, mund të ndihmojë në përmirësimin e performancës së shumë pyetjeve ekzistuese. Në versionin e ri, një pjesë e pyetjes WITH mund të ekzekutohet me zëvendësim, nëse ajo nuk është rekurzive, nuk ka efekte anësore dhe referohet vetëm një herë në pjesën e mëtejmë të pyetjes.
PostgreSQL 12 sjell mbështetje për 'kolonat e gjeneruara'. Të përshkruara në standardin SQL, ky lloj colonne llogarit vlerën në bazë të përmbajtjes së kolonave të tjera në të njëjtën tabelë. Në këtë version, PostgreSQL mbështet 'kolonat e gjeneruara të ruajtura', ku vlera e llogaritur ruhet në disk.
Internacionalizimi
PostgreSQL 12 zgjeron mbështetje për krahasimet ICU, duke lejuar përdoruesit të caktuan 'krahasime të padrejta', të cilat mund, për shembull, të mundësojnë krahasime pa marrë parasysh rastin ose theksin.
Autentikimi
PostgreSQL zgjeron mbështetjen e metodave të besueshme të autentifikimit me disa përmirësime që ofrojnë siguri dhe funksionalitet shtesë. Në këtë version është paraqitur enkriptimi nga ana e klientit dhe nga ana e serverit për autentifikim përmes interface-ve GSSAPI, si dhe mundësia që PostgreSQL të zbulojë serverët LDAP, nëse PostgreSQL është kompiliuar me OpenLDAP.
Për më tepër, PostgreSQL 12 tani mbështet një variant të autentifikimit me shumë faktorë. Tani serveri PostgreSQL mund të kërkojë nga klienti të ofrojë një SSL-certifikatë valide me emrin e duhur të përdoruesit duke përdorur clientcert=verify-full, dhe të kombinojë këtë me një kërkesë të veçantë të metodës së autentifikimit (për shembull, scram-sha-256).
Administrim
Në PostgreSQL 12 u ofrua mundësia për të kryer rindërtimin e indekseve pa bllokim duke përdorur komandën REINDEX CONCURRENTLY. Kjo lejon përdoruesit të shmangin ndalimin në funksionimin e DBMS gjatë rindërtimit të gjatë të indekseve.
Për më tepër, në PostgreSQL 12 është e mundur të aktivizoni ose çaktivizoni kontrollet e shumave të kontrollit të faqeve në një klaster që është në gjendje të fikur, duke përdorur komandën pg_checksums. Më parë, kontrollet e shumave të kontrollit, një funksion që ndihmon në verifikimin e integritetit të të dhënave të ruajtura në disk, mund të aktivizoheshin vetëm në momentin e fillimit të klasterit PostgreSQL me initdb.
Burimi: linux.org.ru
