Egy év fejlesztés után az új stabil PostgreSQL 12 adatbázis-kezelő rendszer ágnak. Frissítések az új ághoz öt évig, 2024 novemberéig.
Fő :
- Támogatás került hozzáadásra a „„, amelyek értéke egy kifejezés alapján kerül kiszámításra, amely magában foglalja más oszlopok értékeit ugyanabban a táblázatban (analóg a nézetekkel, de egyedi oszlopokra vonatkozóan). A generált oszlopok két típusa létezik: tárolt és virtuális. Az előbbi esetében az érték a dátumok hozzáadásakor vagy módosításakor kerül kiszámításra, míg az utóbbinál minden olvasáskor, más oszlopok aktuális állapota alapján. Jelenleg a PostgreSQL csak tárolt generált oszlopokat támogat;
- Lehetővé vált JSON-dokumentumokból adatlekérdezések végrehajtása , amelyek hasonlítanak és a SQL/JSON szabványban definiálva vannak. Az ilyen kifejezések hatékonyabb feldolgozása érdekében, JSONB formátumban tárolt dokumentumokhoz, a meglévő indexelési mechanizmusokat alkalmazzák;
- Alapértelmezés szerint bekapcsolt a JIT (Just-in-Time) fordító használata, az LLVM fejlesztései alapján, hogy felgyorsítsa néhány kifejezés végrehajtását az SQL-lekérdezés feldolgozása során. Például a JIT alkalmazható a „WHERE” blokkok belsejében, a kimeneti listákban (target lists), aggregáló kifejezésekben és néhány belső műveletnél;
- Jelentősen megnövelték az indexelési teljesítményt. A B-tree indexek optimalizálva lettek, hogy jobban működjenek a gyakori indexváltozások mellett — a TPC-C tesztek során a teljesítmény általános javulását és a lemezhely fogyasztásának átlagos 40%-os csökkenését figyelték meg. Csökkent a WAL (Write-Ahead Log) eljárás költsége a GiST, GIN és SP-GiST indexek esetén. A GiST indexekhez hozzáadódott az indexek beágyazásának lehetősége (INCLUDE kifejezés által), amely további oszlopokat tartalmaz. A műveletben támogatás került bevezetésre a legtipikusabb értékek statisztikája (MCV) iránt, amely lehetővé teszi a nem egyenletesen eloszló oszlopoknál a hatékonyabb lekérdezési tervek generálását;
- A szekcionálás (particionálás) megvalósítása optimalizálva lett az olyan lekérdezésekhez, amelyek olyan táblákat érintenek, melyek több ezer szekcióval rendelkeznek, de kivonatolva korlátozott adathalmazokat kérdeznek le. Növelték az adattovábbítás teljesítményét a szekcionált táblákba végzett INSERT és COPY műveletek során, és lehetőséget biztosítottak új szekciók hozzáadására az „ALTER TABLE ATTACH PARTITION” parancs használatával, anélkül, hogy a lekérdezések végrehajtását blokkolnák;
- Bevezették a generált táblázatos kifejezések automatikus inline-kibővítésének támogatását (, CTE), amelyek lehetővé teszik az ideiglenes, elnevezett eredményhalmazok használatát a WITH utasítással. Az inline-kibővítés javítja a legtöbb lekérdezés teljesítményét, de egyelőre csak nem rekurzív CTE-knél alkalmazható;
- Támogatás került hozzáadásra helyi jellemzők „Collation” támogatása, amely lehetővé teszi a karakterek jelentése szerinti szortírozási szabályok és összehasonlítási módszerek megadását (például a numerikus értékek szortírozásakor figyelembe veszik a mínusz és a pont meglétét a szám előtt és a különböző írásmódokat, míg az összehasonlításnál a kis- és nagybetűk, valamint a hangsúlyjelek nem játszanak szerepet);
- Bevezették az ügyfél többlépcsős azonosításának támogatását, amely során a pg_hba.conf fájlban az SSL tanúsítvány (clientcert=verify-full) alapú azonosítást kombinálni lehet egy további azonosítási módszerrel, mint például scram-sha-256;
- Bevezették a kommunikációs csatorna titkosításának támogatását az azonosításon keresztül, mind az ügyfél, mind a szerver oldalán;
- Bevezették az LDAP-szerverek DNS SRV feljegyzések alapján történő meghatározásának támogatását, ha a PostgreSQL OpenLDAP támogatással lett összeállítva;
- Bevezették a „” műveletet, amely lehetővé teszi az indexek átkonfigurálását anélkül, hogy blokkolnák az indexbe írási műveleteket;
- Bevezették a parancsot , amely lehetővé teszi a már létező adatbázis számára a lapok adatellenőrző összegeinek bekapcsolását és kikapcsolását (ez a művelet korábban csak az adatbázis inicializálása során volt támogatható);
- Biztosították az CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL és pg_checksums műveletek előrehaladási mutatójának megjelenítését;
- Bevezették a „” parancsot, amely lehetővé teszi új tárolási módszerekhez optimalizált táblázatkezelők csatlakoztatását specifikus feladatokhoz. Jelenleg az egyetlen beépített táblázat-hozzáférési módszer a „heap”;
- A konfigurációs fájl recovery.conf egyesült a postgresql.conf fájllal. A helyreállítási állapotba való átmenet jelzőjeként mostantól a recovery.signal és a standby.signal fájlokat használják.
Forrás: opennet.ru
