PostgreSQL 11: skaidymo evoliucija nuo Postgres 9.6 iki Postgres 11

Gražaus penktadienio visiems! Iki kurso pradžios lieka vis mažiau laiko „Santykinė DBVS“, todėl šiandien dalinamės dar vienos naudingos medžiagos šia tema vertimu.

Plėtros stadijoje „PostgreSQL“ 11 Buvo atlikta keletas įspūdingų darbų, siekiant pagerinti lentelių skaidymą. Skirstymo lentelės - tai funkcija, kuri egzistavo „PostgreSQL“ gana ilgą laiką, tačiau jos, taip sakant, iš esmės nebuvo iki 10 versijos, kurioje ji tapo labai naudinga funkcija. Anksčiau teigėme, kad lentelės paveldėjimas yra mūsų skaidymo įgyvendinimas, ir tai tiesa. Tik šis metodas privertė didžiąją dalį darbo atlikti rankiniu būdu. Pavyzdžiui, jei norite, kad eilutės būtų įterptos į sekcijas INSERT metu, turėsite sukonfigūruoti trigerius, kad tai padarytų už jus. Padalijimas per paveldėjimą buvo labai lėtas ir sudėtinga sukurti papildomas funkcijas.

„PostgreSQL 10“ pamatėme, kaip atsirado „deklaratyvus skaidymas“ – funkcija, skirta daugeliui problemų, kurios buvo neišspręstos naudojant senąjį paveldėjimo metodą, išspręsti. Tai leido sukurti daug galingesnį įrankį, kuris leido mums padalinti duomenis horizontaliai!

Funkcijų palyginimas

„PostgreSQL 11“ pristato įspūdingą naujų funkcijų rinkinį, padedantį pagerinti našumą ir padaryti skaidytas lenteles skaidresnėmis programoms.

PostgreSQL 11: skaidymo evoliucija nuo Postgres 9.6 iki Postgres 11
PostgreSQL 11: skaidymo evoliucija nuo Postgres 9.6 iki Postgres 11
PostgreSQL 11: skaidymo evoliucija nuo Postgres 9.6 iki Postgres 11
1. Ribojančių išimčių naudojimas
2. Prideda tik mazgus
3. Tik suskaidytai lentelei, nurodančiai neskaidytą
4. Rodyklėse turi būti visi pagrindiniai skaidinio stulpeliai
5. Atkarpų apribojimai abiejose pusėse turi sutapti

Našumas

Čia taip pat turime gerų naujienų! Pridėtas naujas metodas skyrių ištrynimas. Šis naujas algoritmas gali nustatyti tinkamas dalis, žiūrėdamas į užklausos sąlygą WHERE. Ankstesnis algoritmas savo ruožtu patikrino kiekvieną skyrių, kad nustatytų, ar jis gali atitikti sąlygą WHERE. Dėl to, didėjant sekcijų skaičiui, papildomai pailgėjo planavimo laikas.

9.6 versijoje, suskirstant skaidinius paveldėjimo būdu, sekų nukreipimas į skaidinius paprastai buvo atliekamas parašant trigerio funkciją, kurioje buvo IF sakinių serija, skirta įterpti seką į tinkamą skaidinį. Šios funkcijos gali būti vykdomos labai lėtai. 10 versijoje pridėjus deklaratyvų skaidymą, tai veikia daug greičiau.

Naudodami padalintą lentelę su 100 skaidinių, galime įvertinti 10 milijonų eilučių įkėlimo į lentelę su 1 BIGINT stulpeliu ir 5 INT stulpeliais našumą.

PostgreSQL 11: skaidymo evoliucija nuo Postgres 9.6 iki Postgres 11

Šios lentelės užklausos našumas norint rasti vieną indeksuotą įrašą ir vykdyti DML, kad būtų galima manipuliuoti vienu įrašu (naudojant tik 1 procesorių):

PostgreSQL 11: skaidymo evoliucija nuo Postgres 9.6 iki Postgres 11

Čia matome, kad kiekvienos operacijos našumas žymiai padidėjo nuo PG 9.6. Prašymai SELECT atrodo daug geriau, ypač tie, kurie planuojant užklausą gali išskirti kelis skaidinius. Tai reiškia, kad planuotojas gali praleisti daug darbų, kuriuos turėjo atlikti anksčiau. Pavyzdžiui, nebereikalingoms atkarpoms nutiesti takai.

išvada

Lentelių skaidymas pradeda tapti labai galinga PostgreSQL funkcija. Tai leidžia greitai rodyti duomenis internete ir perkelti juos neprisijungus nelaukiant, kol bus baigtos lėtos, didžiulės DML operacijos.. Tai taip pat reiškia, kad susiję duomenys gali būti saugomi kartu, o tai reiškia, kad reikiamus duomenis galima pasiekti daug efektyviau. Šios versijos patobulinimai nebūtų buvę įmanomi be kūrėjų, apžvalgininkų ir įsipareigojusių, kurie nenuilstamai dirbo su visomis šiomis funkcijomis.
Ačiū jiems visiems! PostgreSQL 11 atrodo fantastiškai!

Štai toks trumpas, bet gana įdomus straipsnis. Pasidalykite savo komentarais ir nepamirškite užsiregistruoti Atvirų durų diena, kuriame bus išsamiai aprašyta kurso programa.

Šaltinis: www.habr.com

Добавить комментарий