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

Paçi një të premte të mrekullueshme të gjithëve! Gjithnjë e më pak kohë mbetet para fillimit të kursit "DBMS relacionale", kështu që sot po ndajmë përkthimin e një materiali tjetër të dobishëm për këtë temë.

Në fazën e zhvillimit PostgreSQL 11 Është bërë një punë mbresëlënëse për të përmirësuar ndarjen e tabelave. Tabelat e ndarjes - ky është një funksion që ekzistonte në PostgreSQL për një kohë mjaft të gjatë, por, si të thuash, në thelb nuk ekzistonte deri në versionin 10, në të cilin u bë një funksion shumë i dobishëm. Ne kemi thënë më parë se trashëgimia e tabelës është zbatimi ynë i ndarjes, dhe kjo është e vërtetë. Vetëm kjo metodë ju detyroi të bëni shumicën e punës me dorë. Për shembull, nëse dëshironi që tuplet të futen në seksione gjatë INSERT-ve, do t'ju duhet të konfiguroni nxitësit për ta bërë këtë për ju. Ndarja përmes trashëgimisë ishte shumë e ngadaltë dhe e vështirë për të zhvilluar funksione shtesë në krye të saj.

Në PostgreSQL 10, ne pamë lindjen e "ndarjes deklarative", një veçori e krijuar për të zgjidhur shumë probleme që ishin të pazgjidhshme duke përdorur metodën e vjetër të trashëgimisë. Kjo çoi në një mjet shumë më të fuqishëm që na lejoi të ndajmë të dhënat horizontalisht!

Krahasimi i veçorive

PostgreSQL 11 prezanton një grup mbresëlënës karakteristikash të reja që ndihmojnë në përmirësimin e performancës dhe i bëjnë tabelat e ndara më transparente për aplikacionet.

PostgreSQL 11: Evolucioni i ndarjes nga Postgres 9.6 në Postgres 11
PostgreSQL 11: Evolucioni i ndarjes nga Postgres 9.6 në Postgres 11
PostgreSQL 11: Evolucioni i ndarjes nga Postgres 9.6 në Postgres 11
1. Përdorimi i përjashtimeve kufizuese
2. Shton vetëm nyje
3. Vetëm për një tabelë të ndarë që i referohet një jo të ndarë
4. Indekset duhet të përmbajnë të gjitha kolonat kryesore të ndarjes
5. Kufizimet e seksioneve në të dyja anët duhet të përputhen

prodhimtari

Edhe këtu kemi lajme të mira! U shtua një metodë e re fshirja e seksioneve. Ky algoritëm i ri mund të përcaktojë seksione të përshtatshme duke parë kushtin e pyetjes WHERE. Algoritmi i mëparshëm, nga ana tjetër, kontrolloi çdo seksion për të përcaktuar nëse ai mund të përmbushte kushtin WHERE. Kjo rezultoi në një rritje shtesë në kohën e planifikimit me rritjen e numrit të seksioneve.

Në 9.6, me ndarjen nëpërmjet trashëgimisë, kursimi i tuples në ndarje zakonisht bëhej duke shkruar një funksion aktivizues që përmbante një seri deklaratash IF për të futur tuplen në ndarjen e duhur. Këto funksione mund të jenë shumë të ngadalta për t'u ekzekutuar. Me ndarjen deklarative të shtuar në versionin 10, kjo funksionon shumë më shpejt.

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

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

Performanca e kërkimit të kësaj tabele për të gjetur një rekord të indeksuar dhe për të ekzekutuar DML për të manipuluar një rekord (duke përdorur vetëm 1 procesor):

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

Këtu mund të shohim se performanca e secilit operacion është rritur ndjeshëm që nga PG 9.6. Kërkesat SELECT duken shumë më mirë, veçanërisht ato që janë në gjendje të përjashtojnë ndarje të shumta gjatë planifikimit të pyetjeve. Kjo do të thotë që planifikuesi mund të kapërcejë shumë punë që duhet të kishte bërë më parë. Për shembull, shtigjet nuk ndërtohen më për seksione të panevojshme.

Përfundim

Ndarja e tabelave ka filluar të bëhet një veçori shumë e fuqishme në PostgreSQL. Kjo ju lejon të shfaqni shpejt të dhënat në internet dhe t'i merrni ato jashtë linje pa pritur për të përfunduar operacionet e ngadalta dhe masive DML.. Kjo gjithashtu do të thotë që të dhënat e lidhura mund të ruhen së bashku, që do të thotë se të dhënat që ju nevojiten mund të aksesohen në mënyrë shumë më efikase. Përmirësimet e bëra në këtë version nuk do të ishin të mundura pa zhvilluesit, rishikuesit dhe autorët që punuan pa u lodhur në të gjitha këto veçori.
Faleminderit të gjithëve! PostgreSQL 11 duket fantastike!

Këtu është një artikull kaq i shkurtër, por mjaft interesant. Ndani komentet tuaja dhe mos harroni të regjistroheni Ditë e hapur, në kuadër të të cilit do të përvijohet në detaje programi i lëndës.

Burimi: www.habr.com

Shto një koment