PostgreSQL 12 kutolewa

Timu ya PostgreSQL imetangaza kutolewa kwa PostgreSQL 12, toleo jipya zaidi la mfumo wa usimamizi wa hifadhidata wa uhusiano wa chanzo huria.
PostgreSQL 12 imeboresha sana utendaji wa hoja - haswa wakati wa kufanya kazi na idadi kubwa ya data, na pia imeboresha matumizi ya nafasi ya diski kwa ujumla.

Vipengele vipya ni pamoja na:

  • utekelezaji wa lugha ya hoja ya JSON Path (sehemu muhimu zaidi ya kiwango cha SQL/JSON);
  • uboreshaji wa utekelezaji wa maneno ya kawaida ya meza (NA);
  • msaada kwa nguzo zinazozalishwa

Jumuiya pia inaendelea kufanyia kazi upanuzi na kutegemewa kwa PostgreSQL, kuendeleza usaidizi wa utangazaji wa kimataifa, uwezo wa uthibitishaji, na kutoa njia rahisi za kusimamia mfumo.

Toleo hili linajumuisha utekelezaji wa kiolesura cha injini za kuhifadhi zinazoweza kuchomekwa, ambayo sasa inaruhusu wasanidi programu kuunda mbinu zao za kuhifadhi data.

Uboreshaji wa utendaji

PostgreSQL 12 inajumuisha utendakazi na uboreshaji muhimu wa mifumo ya kuorodhesha na kugawa.

Faharasa za miti B, aina ya kawaida ya kuorodhesha katika PostgreSQL, imeboreshwa katika toleo la 12 kwa ajili ya mizigo ya kazi inayohusisha marekebisho ya mara kwa mara ya faharasa. Kwa kutumia alama ya TPC-C ya PostgreSQL 12 ilionyesha punguzo la wastani la 40% la utumiaji wa nafasi na ongezeko la jumla la utendakazi wa hoja.

Hoja dhidi ya majedwali yaliyogawanywa yamepata maboresho yanayoonekana, haswa kwa jedwali zinazojumuisha maelfu ya sehemu ambazo zinahitaji kufanya kazi na sehemu chache tu za safu za data. Utendaji wa kuongeza data kwenye jedwali zilizogawanywa kwa kutumia INSERT na COPY umeboreshwa, pamoja na uwezo wa kuambatisha kizigeu kipya bila kuzuia hoja.

PostgreSQL 12 imefanya maboresho ya ziada katika kuorodhesha ambayo yanaathiri utendaji wa jumla, ikijumuisha:

  • kupunguzwa kwa juu wakati wa kutengeneza WAL kwa aina za fahirisi za GiST, GIN na SP-GiST;
  • uwezo wa kuunda kinachoitwa indexes za kufunika (INCLUDE kifungu) kwenye faharisi za GiST;
  • uwezo wa kufanya maswali ya "jirani wa karibu" (utafutaji wa k-NN) kwa kutumia operator wa umbali (<->) na kutumia indexes za SP-GiST;
  • msaada wa kukusanya takwimu za thamani ya kawaida (MCV) kwa kutumia CREATE TAKWIMU, ambayo husaidia kupata mipango bora ya hoja wakati wa kutumia safu wima ambazo thamani zake hazijasambazwa kwa usawa.

Mkusanyiko wa JIT kwa kutumia LLVM, ulioletwa katika PostgreSQL 11, sasa umewezeshwa na chaguo-msingi. Ukusanyaji wa JIT huboresha utendaji unapofanya kazi na misemo katika vifungu vya WHERE, orodha lengwa, jumla na baadhi ya shughuli za ndani. Inapatikana ikiwa umekusanya PostgreSQL na LLVM au unatumia kifurushi cha PostgreSQL ambacho kilijengwa kwa kutumia LLVM.

Maboresho ya uwezo wa lugha ya SQL na utangamano wa kawaida

PostgreSQL 12 ilianzisha uwezo wa kuuliza hati za JSON kwa kutumia maneno ya njia ya JSON yaliyofafanuliwa katika kiwango cha SQL/JSON. Hoja kama hizo zinaweza kutumia mbinu zilizopo za kuorodhesha hati zilizohifadhiwa katika umbizo la JSONB ili kurejesha data kwa ufanisi.

Semi za kawaida za jedwali, zinazojulikana pia kama WITH hoji, sasa zinaweza kutekelezwa kiotomatiki kwa kutumia mbadala katika PostgreSQL 12, ambayo inaweza kusaidia kuboresha utendakazi wa hoja nyingi zilizopo. Katika toleo jipya, sehemu mbadala ya swali la WITH inaweza tu kutekelezwa ikiwa haijirudii, haina madhara, na inarejelewa mara moja pekee katika sehemu inayofuata ya hoja.

PostgreSQL 12 inatanguliza msaada kwa "safu wima zinazozalishwa". Ikifafanuliwa katika kiwango cha SQL, aina hii ya safu wima hukokotoa thamani kulingana na yaliyomo kwenye safu wima zingine kwenye jedwali moja. Katika toleo hili, PostgreSQL inasaidia "nguzo zilizohifadhiwa", ambapo thamani iliyohesabiwa imehifadhiwa kwenye diski.

Utandawazi

PostgreSQL 12 hupanua usaidizi wa migongano ya ICU kwa kuruhusu watumiaji kufafanua "mikusanyiko isiyo ya kubainisha" ambayo inaweza, kwa mfano, kuruhusu ulinganisho usiojali kesi au usiojali lafudhi.

Uthibitishaji

PostgreSQL hupanua usaidizi wake kwa mbinu dhabiti za uthibitishaji kwa viboreshaji kadhaa ambavyo hutoa usalama na utendakazi zaidi. Toleo hili linatanguliza usimbaji fiche wa upande wa mteja na wa upande wa seva kwa uthibitishaji kupitia violesura vya GSSAPI, pamoja na uwezo wa PostgreSQL kugundua seva za LDAP PostgreSQL inapoundwa na OpenLDAP.

Kwa kuongeza, PostgreSQL 12 sasa inasaidia chaguo la uthibitishaji wa sababu nyingi. Seva ya PostgreSQL sasa inaweza kuhitaji mteja kutoa cheti halali cha SSL na jina la mtumiaji sambamba kwa kutumia clientcert=verify-full, na kuchanganya hili na hitaji tofauti la mbinu ya uthibitishaji (k.m. scram-sha-256).

Utawala

PostgreSQL 12 ilianzisha uwezo wa kufanya uundaji wa faharasa zisizozuia kwa kutumia amri ya REINDEX CONCURRENTLY. Hii huruhusu watumiaji kuzuia kukatika kwa DBMS wakati wa uundaji upya wa faharasa ndefu.

Kwa kuongeza, katika PostgreSQL 12, unaweza kuwezesha au kuzima ukaguzi wa ukurasa kwenye nguzo ya kuzima kwa kutumia pg_checksums amri. Hapo awali, hesabu za kurasa, kipengele kinachosaidia kuthibitisha uadilifu wa data iliyohifadhiwa kwenye diski, inaweza tu kuwashwa wakati nguzo ya PostgreSQL ilipoanzishwa kwa kutumia initdb.

Chanzo: linux.org.ru

Kuongeza maoni