Grupi i zhvilluesve të PostgreSQL shpalli daljen e PostgreSQL 12, versionit më të ri të 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 kjo ndikon nĂ« punĂ«n me sasi tĂ« mĂ«dha tĂ« dhĂ«nash, pĂ«rveç kĂ«saj Ă«shtĂ« optimizuar pĂ«rdorimi i hapĂ«sirĂ«s sĂ« diskut nĂ« pĂ«rgjithĂ«si.
Mes mundësive të reja:
- realizimi i gjuhës së pyetjeve JSON Path (një pjesë e rëndësishme e standardit SQL/JSON);
- optimizimi i ekzekutimit të shprehjeve të përbashkëta të tabelave (WITH);
- mbështetje për kolonat e 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, duke ofruar rrugë më të thjeshta për administrimin e sistemit.
Në këtë lëshim është përfshirë realizimi i ndërfaqes së motorëve të ruajtjes plug-in, 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ë shërbimit për sistemet e indeksimit dhe ndarjes.
Indeksat B-tree janë tip standardi i indekseve në PostgreSQL, të cilat janë optimizuar në versionin 12 për ngarkesa që parashikojnë modifikime të shpeshta të indekseve. Përdorimi i testit referencë TPC-C për PostgreSQL 12 tregoi një reduktim të përdorimit të hapësirës në mesatarisht 40% dhe një rritje të përgjithshme të performancës së pyetjeve.
Pyetjet për tabelat e ndara kanë pasur përmirësime të dukshme, 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ë dhënash. Performanca e shtimit të të dhënave në tabelat e ndara është përmirësuar me INSERT dhe COPY, si dhe mundësia e lidhjes së një seksioni të ri pa bllokuar pyetjet që po kryhen.
Në PostgreSQL 12 janë realizuar përmirësime shtesë në indeksim që ndikojnë në performancën e përgjithshme, duke përfshirë:
- reduktimin e kostove të gjenerimit të WAL për llojet e indekseve GiST, GIN dhe SP-GiST;
- mundësinë për të krijuar indekse të quajtur ato indekset mbuluese (covering indexes, propozimi INCLUDE) në indekset GiST;
- mundësia për të ekzekutuar kërkesa për "fqinjt më të afërt" (k-NN search) duke përdorur operatorin e distancës () dhe përdorimin e indekseve SP-GiST;
- mbështetje për mbledhjen e statistikat për vlerat më të zakonshme (most-common value, MCV) duke përdorur CREATE STATISTICS, që ndihmon në marrjen e planeve më të mira të ekzekutimit të kërkesave kur përdoren kolona, ku vlerat përkatëse janë të shpërndara në mënyrë të pabarabartë.
JIT-kompilimi me përdorimin e LLVM, i cili është shfaqur në PostgreSQL 11, tani është i aktivizuar si parazgjedhje. JIT-kompilimi rrit performancën gjatë punës me shprehjet në klauzolën WHERE, listat e destinacionit, agregatet dhe disa operacione të brendshme. Ai është në dispozicion nëse keni kompaktuar PostgreSQL me LLVM ose përdorni paketën PostgreSQL që është krijuar me LLVM të aktivizuar.
Përmirësime të mundësive të gjuhës SQL dhe pajtueshmërisë me standardin
Në PostgreSQL 12, është e mundur të ekzekutoni kërkesa ndaj dokumenteve JSON duke përdorur shprehjet e rrugës JSON, të definuara në standardin SQL/JSON. Këto kërkesa 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, gjithashtu të njohura si pyetje me WITH, në PostgreSQL 12 tani mund të ekzekutohen automatikisht me përdorimin e zëvendësimit, i cili nga ana tjetër mund të ndihmojë në përmirësimin e performancës së shumë pyetjeve ekzistuese. Në këtë version, një pjesë e pyetjes WITH mund të ekzekutohet me zëvendësim, vetëm nëse nuk është rekurzive, nuk ka efekte anësore dhe referohet vetëm një herë në pjesën e mëhershme të pyetjes.
Në PostgreSQL 12 përfshihet mbështetje për "kolonat e gjeneruara". Të përshkruara në standardin SQL, ky lloj kolone 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ështetjen për krahasimet ICU, duke lejuar përdoruesit të përcaktojnë "krahasi të paqartë", të cilat mund, për shembull, të lejojnë krahasime pa marrë parasysh regjistrin ose akcentin.
Autentifikimi
PostgreSQL zgjeron mbështetje e saj për metoda të besueshme autentifikimi me disa përmirësime që sigurojnë siguri dhe funksionalitet shtesë. Ky version prezanton enkriptim në anën e klientit dhe në anën e serverit për autentifikim përmes ndërfaqeve GSSAPI, si dhe mundësinë që PostgreSQL të identifikojë hostingut LDAP, nëse PostgreSQL është ndërtuar 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 që të ofrojë një SSL-certifikatë të vlefshme me emrin përkatës të përdoruesit duke përdorur clientcert=verify-full, dhe ta kombinojë këtë me një kërkesë të veçantë për një metodë autentifikimi (p.sh., scram-sha-256).
Administrimi
Me PostgreSQL 12 tani është e mundur të kryhet rinovimi jo-bllokues i indekseve duke përdorur komandën REINDEX CONCURRENTLY. Kjo lejon përdoruesit të shmangin ndalimin e funksionimit të DBMS gjatë rinovimeve të gjata të indekseve.
PĂ«r mĂ« tepĂ«r, nĂ« PostgreSQL 12 mund tĂ« aktivizoni ose çaktivizoni checksum-et e faqeve nĂ« njĂ« klaster qĂ« Ă«shtĂ« nĂ« gjendje tĂ« fikur, duke pĂ«rdorur komandĂ«n pg_checksums. MĂ« parĂ«, checksum-et e faqeve â njĂ« funksion qĂ« ndihmon pĂ«r tĂ« kontrolluar integritetin e tĂ« dhĂ«nave qĂ« ruhen nĂ« disk â mund tĂ« aktivizoheshin vetĂ«m gjatĂ« inicializimit tĂ« klasterit PostgreSQL pĂ«rmes initdb.
Burimi: linux.org.ru
