PostgreSQL 11: Evolucioni i sekcioni nga Postgres 9.6 në Postgres 11

Të enjten e shkëlqyer për të gjithëve! Po afron koha për fillimin e kursit «Baza të dhënash relacionale», prandaj sot po ndajmë përkthimin e një materiali tjetër të dobishëm mbi temën.

NĂ« procesin e zhvillimit PostgreSQL 11 u bĂ« njĂ« punĂ« mbresĂ«lĂ«nĂ«se pĂ«r pĂ«rmirĂ«simin e seksionimit tĂ« tabelave. Seksionimi i tabelave — Ă«shtĂ« njĂ« funksion qĂ« ka ekzistuar nĂ« PostgreSQL pĂ«r njĂ« periudhĂ« tĂ« gjatĂ«, por nĂ« thelb nuk ka pasur vlerĂ« deri nĂ« versionin 10, ku u bĂ« njĂ« funksion shumĂ« i dobishĂ«m. MĂ« parĂ« kishim deklaruar se trashĂ«gimia e tabelave Ă«shtĂ« implementimi ynĂ« i seksionimit, dhe kjo Ă«shtĂ« e vĂ«rtetĂ«. VetĂ«m ky metodĂ« ju detyronte tĂ« bĂ«nit shumicĂ«n e punĂ«s manualisht. PĂ«r shembull, nĂ«se dĂ«shironit qĂ« regjistrimet tĂ« vendoseshin nĂ« seksione gjatĂ« INSERT-it, duhej tĂ« konfiguroni trigger-a qĂ« ta bĂ«nin kĂ«tĂ« pĂ«r ju. Seksionimi me trashĂ«gimi ishte shumĂ« i ngadaltĂ« dhe i ndĂ«rlikuar pĂ«r tĂ« zhvilluar funksione shtesĂ« mbi tĂ«.

NĂ« PostgreSQL 10 pamĂ« lindjen e "seksionimit deklarativ" — njĂ« tipar i krijuar pĂ«r tĂ« zgjidhur shumĂ« probleme qĂ« ishin tĂ« pazgjidhshme me metodĂ«n e vjetĂ«r tĂ« trashĂ«gimisĂ«. Kjo solli nĂ« jetĂ« njĂ« mjet shumĂ« mĂ« tĂ« fuqishĂ«m qĂ« na lejon tĂ« ndajmĂ« tĂ« dhĂ«nat horizontalisht!

Krahasimi i tipareve

Në PostgreSQL 11 u prezantua një set mbresëlënës i tipareve të reja që ndihmojnë në rritjen e efikasitetit dhe e bëjnë tabelat e seksionuara më të qarta për aplikacionet.

PostgreSQL 11: Evolucioni i sekcioni nga Postgres 9.6 në Postgres 11
PostgreSQL 11: Evolucioni i sekcioni nga Postgres 9.6 në Postgres 11
PostgreSQL 11: Evolucioni i sekcioni nga Postgres 9.6 në Postgres 11
1. Duke përdorur përjashtime kufizuese
2. Shton vetëm nodet
3. Vetëm për tabelat e seksionuara, që referohen në ato jo-seksionuara
4. Indekset duhet të përfshijnë të gjitha kolonat kryesore të seksionit
5. Kufizimi mbi seksionin nga të dyja anët duhet të përputhen

Performanca

Këtu gjithashtu kemi disa lajme të mira! Një metodë e re është shtuar për fshirjen e seksioneve. Ky algoritëm i ri mund të identifikojë seksionet e duhura duke shqyrtuar kushtin e kërkesës KU. Algoritmi i mëparshëm, nga ana tjetër, kontrollonte çdo seksion për të përcaktuar nëse mund të përputhej me kushtin KU. Kjo çonte në një rritje të konsiderueshme të kohës së planifikimit me rritjen e numrit të seksioneve.

Në versionin 9.6, me seksionimin përmes trashëgimisë, rrugëzgjidhja e tupleve në seksion zakonisht bëhej duke shkruar një funksion trigger, i cili përmbante një seri operacionesh IF për të inseruar tuple në seksionin e duhur. Këto funksione mund të ishin shumë të ngadalta gjatë ekzekutimit. Me seksionimin deklarativ, të shtuar në versionin 10, kjo filloi të punonte shumë më shpejt.

Duke përdorur një tabelë të seksionuar me 100 seksione, ne mund të vlerësojmë performancën e ngarkesës së 10 milion rreshtave në një tabelë nga 1 kolonë BIGINT dhe 5 kolona INT.

PostgreSQL 11: Evolucioni i sekcioni nga Postgres 9.6 në Postgres 11

Performanca e kërkesës për këtë tabelë për të gjetur një regjistër të indeksuar dhe për të kryer DML për të manipuluar një regjistër (duke përdorur vetëm 1 procesor):

PostgreSQL 11: Evolucioni i sekcioni nga Postgres 9.6 në Postgres 11

Këtu shohim se performanca e çdo operacioni u rrit ndjeshëm pas PG 9.6. Kërkesat SELECT duken shumë më mirë, sidomos ato që janë në gjendje të përjashtojnë shumë seksione gjatë planifikimit të kërkesave. Kjo do të thotë që planifikuesi mund të anashkalojë një pjesë të madhe të punës që duhej të bënte më parë. Për shembull, nuk ndërtohen më rrugë për seksione të panevojshme.

Përfundim

Seksionimi i tabelave po fillon të bëhet një funksion shumë të fuqishëm në PostgreSQL. Ai lejon shfaqjen e shpejtë të të dhënave online dhe kalimin e tyre në offline, pa pritur përfundimin e operacioneve të ngadalta masive të DML.. Kjo gjithashtu do të thotë se të dhënat e lidhura mund të ruhen së bashku, pra, të dhënat e kërkuara mund të accesohen shumë më efikas. Përmirësimet e bëra në këtë version nuk do ishin të mundshme pa zhvilluesit, rishikuesit dhe komitatorët që punuan pa pushim mbi të gjitha këto veçori.
Faleminderit të gjithëve! PostgreSQL 11 duket thjesht fantastike!

Ja një artikull i shkurtër, por mjaft interesant. Ndani komentet tuaja dhe mos harroni të regjistroheni për ditën e hapur, ku do të përshkruhet në detaje programi i kursit.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster