PostgreSQL 12 kiadás

A PostgreSQL csapata bejelentette a PostgreSQL 12 kiadását, a nyílt forráskódú relációs adatbázis-kezelő rendszer legújabb verzióját.
A PostgreSQL 12 jelentősen javította a lekérdezési teljesítményt – különösen akkor, ha nagy mennyiségű adattal dolgozik, és általában optimalizálta a lemezterület felhasználását.

Az új funkciók közé tartozik:

  • a JSON Path lekérdezési nyelv megvalósítása (az SQL/JSON szabvány legfontosabb része);
  • közös táblakifejezések végrehajtásának optimalizálása (WITH);
  • a generált oszlopok támogatása

A közösség továbbra is dolgozik a PostgreSQL bővíthetőségén és megbízhatóságán, fejleszti a nemzetköziesítés támogatását, a hitelesítési képességeket, és egyszerűbb módokat kínál a rendszer adminisztrálására.

Ez a kiadás magában foglalja egy interfész megvalósítását a csatlakoztatható tárolómotorokhoz, amely mostantól lehetővé teszi a fejlesztők számára, hogy saját adattárolási módszereket hozzanak létre.

Teljesítményjavítások

A PostgreSQL 12 jelentős teljesítmény- és karbantartási fejlesztéseket tartalmaz az indexelő és particionáló rendszerekben.

A B-tree indexeket, a PostgreSQL szabványos indexelési típusát, a 12-es verzióban a gyakori indexmódosításokat igénylő munkaterhelésekhez optimalizálták. A TPC-C benchmark használata a PostgreSQL 12-hez átlagosan 40%-kal csökkentette a helyhasználatot és összességében növelte a lekérdezési teljesítményt.

A particionált táblákkal kapcsolatos lekérdezések észrevehető fejlődésen mentek keresztül, különösen a több ezer partícióból álló táblák esetében, amelyekhez az adattömbök csak korlátozott részeivel kell dolgozni. Javult a particionált táblákhoz az INSERT és COPY paranccsal történő adatok hozzáadásának teljesítménye, valamint az új partíció csatolásának lehetősége a lekérdezések blokkolása nélkül.

A PostgreSQL 12 további fejlesztéseket hajtott végre az indexelés terén, amelyek hatással vannak az általános teljesítményre, többek között:

  • csökkentett többletköltség a WAL generálásakor GiST, GIN és SP-GiST indextípusokhoz;
  • az úgynevezett fedőindexek (INCLUDE záradék) létrehozásának képessége a GiST indexeken;
  • a „legközelebbi szomszéd” lekérdezések (k-NN keresés) végrehajtásának képessége a távolság operátor (<->) és az SP-GiST indexek használatával;
  • a CREATE STATISTICS segítségével a legáltalánosabb érték (MCV) statisztikák gyűjtésének támogatása, amely segít jobb lekérdezési tervek elérésében olyan oszlopok használatakor, amelyek értékei egyenlőtlenül oszlanak el.

A PostgreSQL 11-ben bevezetett LLVM-mel történő JIT-fordítás alapértelmezés szerint engedélyezve van. A JIT-fordítás javítja a teljesítményt a WHERE záradékokban, céllistákban, aggregátumokban és egyes belső műveletekben lévő kifejezésekkel végzett munka során. Akkor érhető el, ha a PostgreSQL-t LLVM-mel fordította, vagy olyan PostgreSQL-csomagot használ, amely LLVM-en keresztül készült.

Az SQL nyelvi képességek és a szabványos kompatibilitás továbbfejlesztése

A PostgreSQL 12 bevezette a JSON-dokumentumok lekérdezésének lehetőségét az SQL/JSON szabványban definiált JSON-útvonal-kifejezések használatával. Az ilyen lekérdezések kihasználhatják a JSONB formátumban tárolt dokumentumok meglévő indexelési mechanizmusait az adatok hatékony lekérése érdekében.

A gyakori táblakifejezések, más néven WITH lekérdezések, mostantól automatikusan végrehajthatók helyettesítéssel a PostgreSQL 12-ben, ami viszont segíthet számos meglévő lekérdezés teljesítményének javításában. Az új verzióban a WITH lekérdezés helyettesítő része csak akkor hajtható végre, ha nem rekurzív, nincs mellékhatása, és a lekérdezés következő részében csak egyszer hivatkoznak rá.

A PostgreSQL 12 támogatja a „generált oszlopokat”. Az SQL szabványban leírtak szerint ez az oszloptípus ugyanabban a táblázatban más oszlopok tartalma alapján számít ki egy értéket. Ebben a verzióban a PostgreSQL támogatja a "tárolt generált oszlopokat", ahol a számított érték a lemezen tárolódik.

Nemzetközivé válás

A PostgreSQL 12 kibővíti az ICU-összevetések támogatását azáltal, hogy lehetővé teszi a felhasználók számára "nem-determinisztikus leválogatások" meghatározását, amelyek lehetővé teszik például a kis- és nagybetűk vagy az ékezet nem érzékeny összehasonlításokat.

Hitelesítés

A PostgreSQL számos fejlesztéssel bővíti az erős hitelesítési módszerek támogatását, amelyek további biztonságot és funkcionalitást biztosítanak. Ez a kiadás bevezeti a kliens- és szerveroldali titkosítást a GSSAPI-felületeken keresztüli hitelesítéshez, valamint a PostgreSQL-nek azt a képességét, hogy felfedezze az LDAP-kiszolgálókat, amikor a PostgreSQL-t OpenLDAP-pal fordítják.

Ezenkívül a PostgreSQL 12 mostantól támogatja a többtényezős hitelesítési lehetőséget. A PostgreSQL-kiszolgáló mostantól megkövetelheti az ügyféltől, hogy érvényes SSL-tanúsítványt adjon meg a megfelelő felhasználónévvel a clientcert=verify-full paranccsal, és kombinálja ezt egy külön hitelesítési módszer követelményével (például scram-sha-256).

Adminisztráció

A PostgreSQL 12 bevezette a nem blokkoló index-újraépítések lehetőségét a REINDEX CONCURRENTLY paranccsal. Ez lehetővé teszi a felhasználók számára, hogy elkerüljék a DBMS leállását a hosszadalmas index-újraépítések során.

Ezenkívül a PostgreSQL 12-ben a pg_checksums paranccsal engedélyezheti vagy letilthatja az oldalellenőrző összegeket egy leállítási fürtben. Korábban az oldal-ellenőrző összegeket, a lemezen tárolt adatok integritásának ellenőrzését segítő szolgáltatást csak akkor lehetett engedélyezni, ha a PostgreSQL-fürtöt az initdb segítségével inicializálták.

Forrás: linux.org.ru

Hozzászólás