PostgreSQL 11: A szekcionálás evolúciója a Postgres 9.6-tól a Postgres 11-ig

Kellemes pénte mindenkinek! Egyre kevesebb idő maradt a kurzus indulásáig Relációs DBMS, ezért ma megosztjuk a témához kapcsolódó újabb hasznos anyag fordítását.

A fejlesztési folyamat során PostgreSQL 11 lenyűgöző munkát végeztek a táblák szekcionálásának javításán. Táblák szekcionálása — ez egy olyan funkció, amely már elég régóta létezik a PostgreSQL-ben, de ha úgy tetszik, lényegében nem volt jelen a 10-es verzió előtt, amelyben nagyon hasznossá vált. Korábban azt nyilatkoztuk, hogy a táblák öröklése a mi szekcionalizálási megoldásunk, és ez igaz. Csak ez a módszer azt kívánta, hogy a munka nagy részét manuálisan végezze el. Például, ha azt akarta, hogy a tupelok a szekciókba legyenek beszúrva az INSERT műveletek során, trigger-eket kellett beállítania, hogy ezt elvégezzék helyette. Az öröklésen alapuló szekcionálás nagyon lassú volt, és nehéz volt további funkciókat fejleszteni rá.

A PostgreSQL 10-ben született meg a „deklatív szekcionálás” — egy funkció, amely a régi öröklési móddal kapcsolatos számos megoldhatatlan problémát hivatott megoldani. Ez sokkal hatékonyabb eszköz megjelenését eredményezte, amely lehetővé teszi számunkra az adatok vízszintes megosztását!

Funkciók összehasonlítása

A PostgreSQL 11-ben lenyűgöző új funkciók jelentek meg, amelyek segítenek a teljesítmény növelésében és a szekcionált táblák alkalmazások számára való átláthatóságának javításában.

PostgreSQL 11: A szekcionálás evolúciója a Postgres 9.6-tól a Postgres 11-ig
PostgreSQL 11: A szekcionálás evolúciója a Postgres 9.6-tól a Postgres 11-ig
PostgreSQL 11: A szekcionálás evolúciója a Postgres 9.6-tól a Postgres 11-ig
1. Korlátozó kivételek használata
2. Csak csomópontok hozzáadása
3. Csak a szekcionált táblák számára, amelyek hivatkoznak nem szekcionáltakra
4. Az indexeknek tartalmazniuk kell a szekció minden kulcsoszlopát
5. A szekcióra vonatkozó korlátozások mindkét oldalon meg kell, hogy egyezzenek

Teljesítmény

Itt is van egy jó hírünk! Új módszer kerül bevezetésre szekciók eltávolítására. Ez az új algoritmus képes meghatározni a megfelelő szekciókat a lekérdezés feltételeinek átvizsgálásával AHOL. Az előző algoritmus viszont minden szekciót ellenőrzött, hogy meghatározza, megfelel-e a feltételnek AHOL. Ez további időtöltést okozott a tervezés során a szekciók számának növekedésével.

A 9.6-ban, öröklődéssel elágazásokkal, a szegmensekbe való terjesztés általában egy trigger funkció írásával történt, amely IF operátorok sorozatát tartalmazta a megfelelő szegmensbe való insercióhoz. Ezek a funkciók végrehajtás során nagyon lassúak lehettek. A 10-es verzióban bevezetett deklaratív szegmentálás sokkal gyorsabban működik.

Egy 100 szegmenses szegmentált táblázat használatával felmérhetjük a 10 millió sor egy BIGINT oszlopból és 5 INT oszlopból való betöltésének teljesítményét.

PostgreSQL 11: A szekcionálás evolúciója a Postgres 9.6-tól a Postgres 11-ig

Ennek a táblázatnak a lekérdezési teljesítménye egy indexelt rekord keresésére és DML végrehajtására egy rekord manipulálásához (csak 1 processzor használatával):

PostgreSQL 11: A szekcionálás evolúciója a Postgres 9.6-tól a Postgres 11-ig

Itt látjuk, hogy minden művelet teljesítménye jelentősen megnőtt a PG 9.6 után. A lekérdezések SELECT sokkal jobban néznek ki, különösen azok, amelyek képesek számos szegmenst kihagyni a lekérdezések tervezése során. Ez azt jelenti, hogy a tervező nagy része a munkának, amit korábban el kellett végeznie, most kihagyható. Például már nem építenek útvonalakat a szükségtelen szegmensekhez.

Zárás

A táblázatok szegmentálása kezd nagyon hatékony funkcióvá válni a PostgreSQL-ben. Ez lehetővé teszi az adatok gyors online megjelenítését, és offline-ra való átvitelét anélkül, hogy meg kellene várni a lassú, tömeges DML műveletek befejezését.Ez azt is jelenti, hogy a kapcsolódó adatok együtt tárolhatók, tehát a szükséges adatokhoz sokkal hatékonyabban lehet hozzáférni. Az ebben a verzióban végrehajtott fejlesztések lehetetlenek lettek volna azoknak a fejlesztőknek, bírálóknak és kötelezőknek a munkája nélkül, akik fáradhatatlanul dolgoztak ezeken a funkciókon.
Köszönet mindannyiuknak! A PostgreSQL 11 egyszerűen fantasztikusnak tűnik!

Ez egy rövid, de igen érdekes cikk. Osszátok meg a kommentáraitokat, és ne felejtsétek el regisztrálni a nyílt napra, amely során részletesen bemutatásra kerül a tanfolyam programja.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster