PostgreSQL 11: Verdeling van evolusie van Postgres 9.6 na Postgres 11

Lekker Vrydag almal! Minder tyd oor voor die bekendstelling van die kursus "Relasionele DBBS", so vandag deel ons die vertaling van nog 'n nuttige materiaal oor die onderwerp.

Op ontwikkelingstadium 11 PostgreSQL indrukwekkende werk is gedoen om tafelverdeling te verbeter. Afskortingstafels is 'n kenmerk wat al lank in PostgreSQL bestaan, maar, so te sê, dit het nie bestaan ​​tot weergawe 10 nie, waarin dit 'n baie nuttige kenmerk geword het. Ons het voorheen gesê dat tabeloorerwing ons implementering van partisie is, en dit is waar. Slegs hierdie manier het jou gedwing om die meeste van die werk met die hand te doen. Byvoorbeeld, as jy wou hê dat tuples tydens INSERTs in afdelings ingevoeg moet word, sal jy snellers moet opstel om dit vir jou te doen. Partisionering met oorerwing was baie stadig en kompleks om bykomende kenmerke bo-op dit te ontwikkel.

In PostgreSQL 10 het ons die geboorte van "verklarende partisie" gesien - 'n kenmerk wat ontwerp is om baie probleme op te los wat onoplosbaar was met die ou metode met oorerwing. Dit het gelei tot 'n baie kragtiger instrument wat ons toelaat om data horisontaal te verdeel!

Eienskappe vergelyking

PostgreSQL 11 het 'n indrukwekkende stel nuwe kenmerke wat help om werkverrigting te verbeter en gepartisioneerde tabelle meer deursigtig vir toepassings te maak.

PostgreSQL 11: Verdeling van evolusie van Postgres 9.6 na Postgres 11
PostgreSQL 11: Verdeling van evolusie van Postgres 9.6 na Postgres 11
PostgreSQL 11: Verdeling van evolusie van Postgres 9.6 na Postgres 11
1. Gebruik beperkende uitsonderings
2. Voeg slegs nodusse by
3. Slegs vir 'n gepartisioneerde tabel wat verwys na 'n nie-gepartisioneerde
4. Indekse moet al die sleutelkolomme van die afdeling bevat
5. Seksiebeperking aan beide kante moet ooreenstem

produktiwiteit

Hier het ons ook goeie nuus! Nuwe metode bygevoeg delete uitvee. Hierdie nuwe algoritme kan geskikte partisies bepaal deur na die navraagtoestand te kyk WHERE. Die vorige algoritme het op sy beurt elke afdeling getoets om te bepaal of dit aan die voorwaarde kon voldoen WHERE. Dit het gelei tot 'n bykomende toename in beplanningstyd namate die aantal afdelings toegeneem het.

In 9.6, met oorerwingpartisionering, is die roetering van tupels in partisies gewoonlik gedoen deur 'n snellerfunksie te skryf wat 'n reeks IF-stellings bevat het om 'n tupel in die korrekte partisie in te voeg. Hierdie funksies kan baie stadig wees om uit te voer. Met verklarende partisie bygevoeg in weergawe 10, is dit baie vinniger.

Deur 'n gepartisioneerde tabel met 100 partisies te gebruik, kan ons die werkverrigting evalueer om 10 miljoen rye in 'n tabel met 1 BIGINT-kolom en 5 INT-kolomme te laai.

PostgreSQL 11: Verdeling van evolusie van Postgres 9.6 na Postgres 11

Die prestasie van 'n navraag op hierdie tabel om 'n enkele geïndekseerde rekord op te soek en DML uit te voer om 'n enkele rekord te manipuleer (met slegs 1 verwerker):

PostgreSQL 11: Verdeling van evolusie van Postgres 9.6 na Postgres 11

Hier kan ons sien dat die prestasie van elke operasie aansienlik toegeneem het sedert PG 9.6. Versoeke SELECT lyk baie beter, veral dié wat baie partisies tydens navraagbeplanning kan uitsluit. Dit beteken dat die skeduleerder die meeste van die werk wat hy voorheen moes gedoen het, kan oorslaan. Paadjies vir onnodige gedeeltes word byvoorbeeld nie meer gebou nie.

Gevolgtrekking

Tabelpartisionering begin 'n baie kragtige kenmerk in PostgreSQL word. Dit laat jou toe om data vinnig aanlyn te bring en dit vanlyn oor te dra sonder om te wag vir die voltooiing van stadige massiewe DML-operasies.. Dit beteken ook dat verwante data saam gestoor kan word, wat beteken dat toegang tot die vereiste data baie meer doeltreffend verkry kan word. Die verbeterings wat in hierdie weergawe aangebring is, sou nie moontlik gewees het sonder die ontwikkelaars, beoordelaars en toewyders wat onvermoeid aan al hierdie kenmerke gewerk het nie.
Dankie aan hulle almal! PostgreSQL 11 lyk fantasties!

Hier is so 'n kort maar baie interessante artikel. Deel jou kommentaar en moenie vergeet om in te teken nie Opedag, waarbinne die program van die kursus in detail beskryf sal word.

Bron: will.com

Voeg 'n opmerking