PostgreSQL 11: Sektsioonimise evolutsioon Postgres 9.6-lt Postgres 11-le

Head nagu pĂ€ev! Aeg kursuse kĂ€ivitamiseks on jĂ€rjest vĂ€hem. Relationaalsed andmebaasid, seega jagame tĂ€na tĂ”lget veel ĂŒhest kasulikust materjalist selle teema kohta.

Arendusprotsessis PostgreSQL 11 on tehtud muljetavaldavat tööd tabelite sektsioneerimise parandamiseks. Tabelite sektsioneerimine on funktsioon, mis on PostgreSQL-is eksisteerinud juba pikka aega, kuid mille sisu ei olnud kriitiliselt funktsionaalne enne versiooni 10, kus see tÔepoolest kasulikuks osutus. Oleme varasemalt vÀitnud, et tabelite pÀrandamine on meie teostus sektsioneerimist, ja see on tÔsi. Ainult see meetod nÔudis, et suur osa tööst tehti kÀsitsi. NÀiteks, kui soovisite, et kandeid sisestatakse sektsioonidesse INSERT-ide ajal, pidite seadistama triggereid, et seda teie eest teha. PÀrandamisega sektsioneerimine oli vÀga aeglane ja keeruline, et arendada lisafunktsioone selle peale.

PostgreSQL 10 tĂ”i endaga kaasa „deklareeriva sektsioneerimise“, mis on funktsioon, mis on loodud lahendama paljusid probleeme, mis varem olid vanade pĂ€randimeetodite kasutamisel lahendamatud. See viis palju vĂ”imsama tööriista vĂ€ljatöötamiseni, mis vĂ”imaldab meil andmeid horisontaalselt jagada!

Funktsioonide vÔrdlus

PostgreSQL 11 tÔi kaasa muljetavaldava hulga uusi funktsioone, mis aitavad suurendada jÔudlust ja muuta sektsioneeritud tabelid rakendustele lÀbipaistvamaks.

PostgreSQL 11: Sektsioonimise evolutsioon Postgres 9.6-lt Postgres 11-le
PostgreSQL 11: Sektsioonimise evolutsioon Postgres 9.6-lt Postgres 11-le
PostgreSQL 11: Sektsioonimise evolutsioon Postgres 9.6-lt Postgres 11-le
1. Kasutades piiravaid erandeid
2. Lisab ainult sÔlmed
3. Ainult sektsioneeritud tabeli jaoks, mis viitab mitte-sektsioneeritud tabelile
4. Indeksid peavad sisaldama kÔiki sektsiooni vÔti-sambaid
5. Piirangud sektsiooni mĂ”lemal kĂŒljel peavad olema samad

Tootlikkus

Siin on meil ka hÀid uudiseid! Uus meetod sektsioonide eemaldamiseks. See uus algoritm suudab tuvastada sobivad sektsioonid, vaadates pÀringu tingimust WHERE. Eelmine algoritm kontrollis aga igat sektsiooni, et mÀÀrata, kas see vastab tingimusele. WHERE. See tÔi kaasa tÀiendava planeerimise aja suurenemise sektsioonide arvu suurenedes.

Versioonis 9.6, kasutades pÀrimisega sektsioonimist, toimus ridade marsruutimine sektsioonides tavaliselt triggereerimisfunktsiooni kirjutamise kaudu, mis sisaldas IF-lauseid ridade sisestamiseks Ôigetesse sektsioonidesse. Need funktsioonid vÔisid olla töötluses vÀga aeglased. Deklaratiivse sektsioonimise lisamisega versioonis 10 hakkas see töötama palju kiiremini.

Kasutades sektsioonitud tabelit, kus on 100 sektsiooni, saame hinnata 10 miljoni rea laadimise tulemuslikkust tabelisse, kus on 1 BIGINT veerg ja 5 INT veergu.

PostgreSQL 11: Sektsioonimise evolutsioon Postgres 9.6-lt Postgres 11-le

Selle tabeli pĂ€ringu tulemuslikkus ĂŒhe indekseeritud kirje otsimisel ja DML-i tĂ€itmisel ĂŒhe kirje manipuleerimiseks (kasutades ainult 1 protsessorit):

PostgreSQL 11: Sektsioonimise evolutsioon Postgres 9.6-lt Postgres 11-le

Siin nÀeme, et iga operatsiooni tulemuslikkus on pÀrast PG 9.6 oluliselt suurenenud. PÀringud SELECT nÀevad palju paremad vÀlja, eriti need, mis suudavad plaanimise kÀigus mitmeid sektsioone vÀlja jÀtta. See tÀhendab, et planeerija saab suure osa tööst vahele jÀtta, mida ta varem tegema pidi. NÀiteks ei ehitata enam teid tarbetutele sektsioonidele.

KokkuvÔte

Tabelite sektsioneerimine hakkab PostgreSQL-is muutuma vĂ€ga vĂ”imsaks funktsiooniks. See vĂ”imaldab kiiresti andmeid online kuvada ja neid offline'iks tĂ”lkida, oodates, et aeglased massilised DML-operatsioonid lĂ”petatakse.See tĂ€hendab ka, et seotud andmed vĂ”ivad olla koos, mis tĂ€hendab, et vajalikule infole on oluliselt tĂ”husam juurdepÀÀs. Selle versiooni parandused ei oleks olnud vĂ”imalikud ilma arendajate, ĂŒlevaatajate ja kommitteriteta, kes on nende kĂ”igi funktsioonide nimel vĂ€simatult töötanud.
TÀname neid kÔiki! PostgreSQL 11 nÀeb lihtsalt fantastiline vÀlja!

Siin on lĂŒhike, kuid ĂŒsna huvitav artikkel. Jagage oma kommentaare ja Ă€rge unustage registreeruda avatud uste pĂ€ev, kus kursuse programmi ĂŒksikasjad esitletakse.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster