PostgreSQL 11: Evolucioni i secionimit nga Postgres 9.6 deri në Postgres 11

Të gjitha të premteve të shkëlqyera! Po i ka mbetur gjithnjë e më pak kohë deri në lancimin e kursit «Sistemet e Menaxhimit të të Dhënave Relacionale», prandaj sot po ndajem përkthimin e një materiali tjetër të dobishëm mbi këtë temë.

GjatĂ« zhvillimit PostgreSQL 11 Ă«shtĂ« bĂ«rĂ« njĂ« punĂ« mbresĂ«lĂ«nĂ«se pĂ«r pĂ«rmirĂ«simin e sekcionimit tĂ« tabelave. Sekcionimi i tabelave — Ă«shtĂ« njĂ« funksion qĂ« ka ekzistuar nĂ« PostgreSQL pĂ«r njĂ« kohĂ« tĂ« gjatĂ«, por, nĂ«se mund tĂ« shprehem ashtu, nĂ« esencĂ« nuk ka qenĂ« i pranishĂ«m deri nĂ« versionin 10, kur u bĂ« njĂ« funksion shumĂ« i dobishĂ«m. MĂ« parĂ« ne kemi deklaruar se trashĂ«gimia e tabelave Ă«shtĂ« realizimi ynĂ« i sekcionimit, dhe kjo Ă«shtĂ« e vĂ«rtetĂ«. VetĂ«m se ky metodĂ« ju detyronte tĂ« bĂ«nit shumicĂ«n e punĂ«s manualisht. PĂ«r shembull, nĂ«se donit qĂ« rreshtat tĂ« futeshin nĂ« seksione gjatĂ« INSERT-imeve, duhej tĂ« konfiguroni triggere pĂ«r ta bĂ«rĂ« kĂ«tĂ« pĂ«r ju. Sekcionimi pĂ«rmes trashĂ«gimisĂ« ishte shumĂ« i ngadalshĂ«m dhe i komplikuar pĂ«r tĂ« zhvilluar funksione tĂ« tjera mbi tĂ«.

NĂ« PostgreSQL 10 ne pamĂ« lindjen e "sekcionimit deklarativ" — njĂ« tipar i destinuar pĂ«r tĂ« zgjidhur shumĂ« probleme qĂ« ishin tĂ« pazgjidhshme me pĂ«rdorimin e metodĂ«s sĂ« vjetĂ«r me trashĂ«gimi. Kjo çoi nĂ« krijimin e njĂ« instrumenti shumĂ« mĂ« tĂ« fuqishĂ«m qĂ« na lejon tĂ« ndahen tĂ« dhĂ«nat horizontalisht!

Krahasimi i karakteristikave

Në PostgreSQL 11 u shfaq një grup mbresëlënës i karakteristikave të reja që ndihmojnë në rritjen e performancës dhe e bëjnë tabelat e sekcionuara më të qarta për aplikacionet.

PostgreSQL 11: Evolucioni i secionimit nga Postgres 9.6 deri në Postgres 11
PostgreSQL 11: Evolucioni i secionimit nga Postgres 9.6 deri në Postgres 11
PostgreSQL 11: Evolucioni i secionimit nga Postgres 9.6 deri në Postgres 11
1. Përdorimi i përjashtimeve kufizuese
2. Shtimi vetëm i nodëve
3. Vetëm për tabelat e sekcionuara, që referohen në tabelat jo të sekcionuara
4. Indekset duhet të përmbajnë të gjitha kolonat kryesore të seksionit
5. Kufizimi i seksionit nga të dy anët duhet të përputhet

Performanca

KĂ«tu kemi edhe lajm tĂ« mirĂ«! ËshtĂ« shtuar njĂ« metodĂ« e re pĂ«r fshirjen e seksioneve. Ky algoritĂ«m i ri mund tĂ« identifikojĂ« seksionet e pĂ«rshtatshme duke shqyrtuar kushtin e kĂ«rkesĂ«s WHERE. 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 WHERE. Kjo shkaktonte njĂ« rritje tĂ« kohĂ«s sĂ« planifikimit ndĂ«rsa rritej numri i seksioneve.

Në 9.6, me sekcionimin përmes trashëgimisë, rrugëtimi i rreshtave në seksione zakonisht bëhej përmes shkruarjes së një funksioni trigger që përmbante një seri operatorësh IF për të futur rreshtin në seksionin e duhur. Këto funksione mund të ishin shumë të ngadalta gjatë ekzekutimit. Me sekcionimin deklarativ, i shtuar në versionin 10, kjo filloi të funksiononte shumë më shpejt.

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

PostgreSQL 11: Evolucioni i secionimit nga Postgres 9.6 deri në Postgres 11

Performanca e kërkesës ndaj kësaj tabele për të gjetur një regjistrim të indekseve dhe për të realizuar DML për të manipuluar një regjistrim (duke përdorur vetëm 1 procesor):

PostgreSQL 11: Evolucioni i secionimit nga Postgres 9.6 deri në Postgres 11

Këtu shohim se performanca e çdo operacioni është rritur ndjeshëm pas PG 9.6. Kërkesat SELECT duken shumë më mirë, veçanërisht ato që janë në gjendje të përjashtojnë shumë seksione gjatë planifikimit të kërkesave. Kjo do të thotë se planifikuesi mund të shmangë një pjesë të madhe të punës që duhet të kishte bërë më parë. Për shembull, nuk ndodhin më ndërtimi i rrugëve për seksione që nuk janë të nevojshme.

Përfundimi

Sekcionimi i tabelave fillon të bëhet një funksion shumë të fuqishëm në PostgreSQL. Ai lejon shfaqjen e shpejtë të të dhënave online dhe kalimin në offline, pa pritur për përfundimin e operacioneve të ngadalta DML. Kjo do të thotë gjithashtu se të dhënat e lidhura mund të ruhen së bashku, duke e bërë shumë më të efektshme qasjen në të dhënat e nevojshme. Përmirësimet e bëra në këtë version nuk do të ishin të mundura pa zhvilluesit, rishikuesit dhe komitetët që punuan pa u lodhur mbi të gjitha këto karakteristika.
Faleminderit atyre të gjithë! PostgreSQL 11 duket thjesht fantastike!

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

Burimi: habr.com

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