Head nagu pĂ€ev! Aeg kursuse kĂ€ivitamiseks on jĂ€rjest vĂ€hem. , seega jagame tĂ€na tĂ”lget veel ĂŒhest kasulikust materjalist selle teema kohta.
Arendusprotsessis 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.



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 . 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.

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

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 , kus kursuse programmi ĂŒksikasjad esitletakse.
Allikas: habr.com
