PostgreSQL 11: osioinnin kehitys Postgres 9.6:sta Postgres 11:een

Mukavaa perjantaita kaikille! Yhä vähemmän aikaa on jäljellä ennen kurssin alkamista "Relational DBMS", joten tänään jaamme käännöksen toisesta hyödyllisestä materiaalista aiheesta.

Kehitysvaiheessa PostgreSQL 11 Pöydän osioinnin parantamiseksi on tehty vaikuttavaa työtä. Jakotaulukot - tämä on toiminto, joka oli olemassa PostgreSQL:ssä melko pitkään, mutta se oli niin sanotusti olemassa vasta versiossa 10, jossa siitä tuli erittäin hyödyllinen toiminto. Totesimme aiemmin, että taulukon periytyminen on osioinnin toteutus, ja tämä on totta. Vain tämä menetelmä pakotti sinut tekemään suurimman osan työstä manuaalisesti. Jos esimerkiksi halusit, että monikot lisätään osioihin INSERT:ien aikana, sinun on määritettävä triggerit tekemään tämä puolestasi. Osiointi periytymisen kautta oli erittäin hidasta ja sen päälle oli vaikea kehittää lisätoimintoja.

PostgreSQL 10:ssä näimme "deklatiivisen osioinnin" syntymän, ominaisuus, joka on suunniteltu ratkaisemaan monia ongelmia, joita ei voitu ratkaista vanhalla perintömenetelmällä. Tämä johti paljon tehokkaampaan työkaluun, jonka avulla pystyimme jakamaan tietoja vaakasuunnassa!

Ominaisuuden vertailu

PostgreSQL 11 esittelee vaikuttavan joukon uusia ominaisuuksia, jotka parantavat suorituskykyä ja tekevät osioiduista taulukoista läpinäkyvämpiä sovelluksille.

PostgreSQL 11: osioinnin kehitys Postgres 9.6:sta Postgres 11:een
PostgreSQL 11: osioinnin kehitys Postgres 9.6:sta Postgres 11:een
PostgreSQL 11: osioinnin kehitys Postgres 9.6:sta Postgres 11:een
1. Rajoittavien poikkeusten käyttäminen
2. Lisää vain solmut
3. Vain osioidulle taulukolle, joka viittaa osittamattomaan taulukkoon
4. Indeksien tulee sisältää kaikki osion avainsarakkeet
5. Kummankin puolen leikkausrajoitusten on oltava samat

Suorituskyky

Meillä on myös täällä hyviä uutisia! Uusi menetelmä lisätty osioiden poistaminen. Tämä uusi algoritmi voi määrittää sopivat osat tarkastelemalla kyselyn ehtoa WHERE. Edellinen algoritmi puolestaan ​​​​tarkisti jokaisen osan määrittääkseen, voisiko se täyttää ehdon WHERE. Tämä lisäsi suunnitteluaikaa osien määrän lisääntyessä.

9.6:ssa, kun osiointi periytyi, monikot reititettiin osioihin tyypillisesti kirjoittamalla liipaisufunktio, joka sisälsi sarjan IF-käskyjä monikon lisäämiseksi oikeaan osioon. Nämä toiminnot voivat olla hyvin hidasta suorittaa. Versiossa 10 lisätty deklaratiivinen osiointi toimii paljon nopeammin.

Käyttämällä osioitua taulukkoa, jossa on 100 osiota, voimme arvioida 10 miljoonan rivin lataamisen taulukkoon, jossa on 1 BIGINT-sarake ja 5 INT-saraketta.

PostgreSQL 11: osioinnin kehitys Postgres 9.6:sta Postgres 11:een

Tämän taulukon kyselyn suorituskyky yhden indeksoidun tietueen löytämiseksi ja DML:n suorittaminen yhden tietueen käsittelemiseksi (käyttäen vain yhtä prosessoria):

PostgreSQL 11: osioinnin kehitys Postgres 9.6:sta Postgres 11:een

Tässä näemme, että kunkin toiminnon suorituskyky on parantunut merkittävästi PG 9.6:n jälkeen. Pyynnöt SELECT näyttävät paljon paremmilta, etenkin ne, jotka pystyvät sulkemaan pois useita osioita kyselyn suunnittelun aikana. Tämä tarkoittaa, että ajoittaja voi ohittaa paljon työtä, joka sen olisi pitänyt tehdä aiemmin. Esimerkiksi polkuja ei enää rakenneta tarpeettomille osille.

Johtopäätös

Taulukkoosioista on tulossa erittäin tehokas ominaisuus PostgreSQL:ssä. Sen avulla voit näyttää tiedot nopeasti verkossa ja siirtää ne offline-tilaan odottamatta hitaiden, massiivisten DML-toimintojen valmistumista.. Tämä tarkoittaa myös sitä, että toisiinsa liittyvät tiedot voidaan tallentaa yhdessä, mikä tarkoittaa, että tarvitsemasi tiedot voidaan käyttää paljon tehokkaammin. Tähän versioon tehdyt parannukset eivät olisi olleet mahdollisia ilman kehittäjiä, arvioijia ja sitoutuneita, jotka työskentelivät väsymättä kaikkien näiden ominaisuuksien parissa.
Kiitos heille kaikille! PostgreSQL 11 näyttää upealta!

Tässä on niin lyhyt mutta varsin mielenkiintoinen artikkeli. Jaa kommenttisi ja älä unohda rekisteröityä Avointen ovien päivä, jossa kurssiohjelma hahmotellaan yksityiskohtaisesti.

Lähde: will.com

Lisää kommentti