Ako každý rok medzi septembrom a októbrom, bolo oznámené vydanie novej verzie PostgreSQL 17 a rovnako ako pri všetkých predchádzajúcich verziách zostáva prioritou zlepšenie výkonu a optimalizácia zdrojov, najmä pre operácie ako VACUUM, I/O a dotazy, pričom najdôležitejšou novou funkciou tejto verzie je inkrementálne zálohovanie.
Pre podnikových používateľov prináša aktualizácia množstvo vylepšení, ktoré zjednodušujú správu a používanie databázy. Hoci PostgreSQL bola historicky relačná databáza, táto verzia rozširuje svoju integráciu o pokročilé funkcie pre prácu s dokumentmi JSON, čo je funkcia bežne spojená s Atlasom MongoDB.
Čo je nové v PostgreSQL 17
V tejto novej verzii PostgreSQL 17 bola v operácii VACUUM zavedená nová dátová štruktúra, ktorá až 20-krát znižuje spotrebu pamäte, čo umožňuje, aby tieto operácie boli rýchlejšie a efektívnejšie z hľadiska zdieľaných zdrojov.
Pokiaľ ide o zlepšenie výkonu, bola optimalizovaná správa registrov zápisu (WAL) , čím sa dosiahol až dvojnásobný výkon zápisu v systémoch s mnohými súbežnými dotazmi. Na zlepšenie sekvenčného vyhľadávania a aktualizácií štatistík po operácii ANALYZE bolo navrhnuté rozhranie streamovania I/O .
Okrem toho boli implementované vylepšenia v dotazoch s klauzulami „IN“ pri použití indexov B-stromov, ako aj paralelná konštrukcia indexov BRIN, optimalizácia kontrol „NOT NULL“ a zrýchlenie spracovania bežných tabuľkových výrazov (CTE). Pre náročné výpočty boli začlenené inštrukcie SIMD, ako napríklad AVX-512, na zrýchlenie operácií, ako je funkcia `bit_count`.
Ďalšou novinkou, ktorá vyniká, je nové funkcie pre JSON, od Používatelia teraz môžu dopytovať typy údajov JSON pomocou štandardných príkazov SQL. To je možné vďaka novej funkcii stola json, ktorý transformuje údaje JSON do tabuľkovej štruktúry. Odtiaľ môžu používatelia klásť otázky pomocou klauzuly FROM v SQL, čo umožňuje vrátenie údajov v relačnom formáte. Pridaná funkcia `JSON_TABLE` na konverziu údajov JSON na štandardné tabuľky PostgreSQL.
Za zmienku stojí aj nová funkcia inkrementálneho zálohovania v PostgreSQL 17, ktorá umožňuje zálohovať iba zmeny vykonané od poslednej úplnej alebo inkrementálnej zálohy , čím optimalizuje využitie šírky pásma a znižuje požiadavky na úložisko. Zatiaľ čo PostgreSQL už ponúkal riešenia ako WAL Archiving, ktoré replikovalo protokol Write-Ahead Log (WAL) na udržiavanie potrebných sekcií databázy, verzia 17 po prvýkrát zavádza natívny mechanizmus na vykonávanie inkrementálnych záloh. Tento systém nielen minimalizuje prevádzkové prerušenia tým, že má menší vplyv na výkon, ale tiež výrazne skracuje časy obnovy – kľúčový aspekt, pretože obnova záloh je pre používateľov často pomalý a frustrujúci proces.
Na spracovanie vlastností lokalizácie bol implementovaný engine nezávislý od platformy , ktorý umožňuje konzistentné triedenie výsledkov dotazov. Tento engine pri triedení hodnôt zohľadňuje faktory, ako je prítomnosť špeciálnych znakov a rozlišovanie veľkých a malých písmen. Mechanizmus logickej replikácie teraz zjednodušuje proces aktualizácie databázy a eliminuje potrebu odstraňovať logické replikačné sloty alebo resynchronizovať údaje pri migrácii na novú verziu.
Medzi ďalšie významné zmeny patria :
- Export dlhých reťazcov pomocou príkazu `COPY` sa zrýchlil až dvakrát.
- Optimalizované kopírovanie, keď sa zdrojové a cieľové kódovanie zhoduje.
- Bola pridaná možnosť „ON_ERROR“, ktorá umožňuje pokračovať v importe napriek chybám pri vkladaní údajov.
- Pridaná možnosť používať stĺpce s jedinečnými identifikátormi v rozdelených tabuľkách.
- Implementovaná funkcia núdzového prepnutia na záložný server v konfiguráciách odolných voči chybám.
- Pridaný nový pomocný program pg_createsubscriber na konverziu fyzickej repliky na logickú repliku.
- Zavedená možnosť „sslnegotiation“ na vyjednanie bezpečných pripojení TLS priamo pomocou rozšírenia ALPN TLS.
- Pridaná preddefinovaná rola pg_maintain, ktorá dáva užívateľom právo vykonávať operácie súvisiace s údržbou DBMS
Na záver, ak máte záujem dozvedieť sa viac, podrobnosti nájdete na nasledujúcom odkaze.