Vydanie Systému riadenia databáz PostgreSQL 17

Po roku vývoja bola verejnosti predstavená nová stabilná verzia systému riadenia databáz PostgreSQL 17. Aktualizácie pre túto novú verziu budú vydávané počas nasledujúcich piatich rokov do novembra 2029. Podpora PostgreSQL 12.x, najstaršej podporovanej verzie, sa skončí 14. novembra.

Hlavné novinky:

  • Pri vykonávaní operácie VACUUM (zbieranie odpadu, čistenie a balenie diskového úložiska) bola zavedená nová dátová štruktúra, ktorá spotrebováva až 20-krát menej pamäte. Prechod na novú štruktúru umožnil urýchliť vykonávanie operácií VACUUM a znížiť spotrebu zdieľaných zdrojov.
  • Pokračovalo sa v optimalizácii výkonu vstupu/výstupu. Vďaka vylepšeniu kódu pre spracovanie denníka odloženého zápisu WAL sa podarilo zdvojnásobiť priepustnosť zápisových operácií v systémoch s veľkým počtom súčasne vykonávaných dopytov. Bol navrhnutý nový rozhranie pre prúdový vstup/výstup, ktoré umožnilo zvýšiť rýchlosť sekvenčného prehľadávania údajov v tabuľkách a zrýchliť aktualizáciu štatistiky pre plánovač dopytov po vykonaní operácie ANALYZE.
  • Zvýšila sa výkonnosť dopytov s výrazy „IN“, ak používajú indexy na základe štruktúry B-tree. Do systému bol implementovaný paralelný proces pre budovanie indexov BRIN (Indexy blokového rozsahu). V plánovači dopytov boli optimalizované kontroly „NOT NULL“ a urýchlené spracovanie všeobecných tabuľkových výrazov (Common Table Expression, CTE) definovaných pomocou SQL príkazu „WITH“. Zabezpečilo sa využívanie inštrukcií vektorového procesora (SIMD) na urýchlenie niektorých výpočtov, napríklad pre zrýchlenie funkcie bit_count boli využité inštrukcie AVX-512.
  • Bola zavedená podpora nových funkcií na prácu s formátom JSON, definovaných v štandarde SQL/JSON. Bola pridaná funkcia JSON-TABLE na konverziu údajov z formátu JSON na bežné tabuľky PostgreSQL, ako aj nové operátory jsonpath na konverziu údajov JSON na typy údajov rodné pre PostgreSQL. Navrhnuté boli nové funkcie na vytváranie (JSON, JSON_SCALAR a JSON_SERIALIZE) a dopytovanie (JSON_EXISTS, JSON_QUERY a JSON_VALUE) údajov vo formáte JSON.
  • Možnosti SQL príkazu „MERGE“ boli rozšírené, čo umožňuje vytvárať podmienené SQL výrazy kombinujúce v jednom výraze operácie INSERT, UPDATE a DELETE. Pridaná podpora výrazu RETURNING, ktorý umožňuje počítať a vracať hodnoty na základe pridaných, aktualizovaných alebo odstránených riadkov. Implementovaná podpora aktualizácie pohľadov.
  • Možnosti nahrávania a exportu dát v dávkovom režime boli rozšírené. Pri príkaze COPY bola až dvojnásobne zvýšená rýchlosť exportu veľkých riadkov, optimalizované kopírovanie pri zhode pôvodných a cieľových kódovaní, pridaná možnosť ON_ERROR, ktorá umožňuje pokračovať v importe po chybách pri vkladaní dát.
  • Pre rozdelené tabuľky bola pridaná možnosť používania stĺpcov s jedinečnými identifikátormi a podpora techniky optimalizácie dopytov „Constraint exclusion“.
  • V mechanizme pripojenia externých tabuliek Foreign Data Wrapper (postgres_fdw) bola implementovaná možnosť prenosu na externé server poddotazov „EXISTS“ a „IN.
  • Implementovaný bol zabudovaný multiplatformný engine na spracovanie vlastností lokalizácie „Collation“, ktoré sa používajú na stanovenie pravidiel triedenia a spôsobov porovnávania so zohľadnením významu znakov (napríklad pri triedení číselných hodnôt sa zohľadňuje prítomnosť mínusu a bodky pred číslom a rôzne spôsoby zápisu, a pri porovnávaní sa nezohľadňuje veľkosť písmen a prítomnosť diakritiky). Nový engine zabezpečuje jednotné správanie pri triedení výsledkov dopytov, nezávislé od toho, na akej platforme sa PostgreSQL spúšťa.
  • V mechanizme logickej replikácie, ktorý umožňuje prenášať na iný server zmeny vykonané v DB v priebehu pridávania, odstraňovania alebo aktualizácie záznamov, bol zjednodušený proces aktualizácie DBMS. Ak predtým pri prechode na nové významné vydanie bolo potrebné odstrániť sloty logickej replikácie a znovu synchronizovať dáta, teraz je možné sa zaobísť bez odstránenia slotov. Pre odolné konfigurácie bola implementovaná možnosť riadenia prechodu na náhradný server (failover) pre logickú replikáciu. Pridaný bol nový nástroj pg_createsubscriber na konverziu fyzickej repliky na novú logickú replikáciu.
  • Pridaná nová možnosť „sslnegotiation“ pre priame vyjednávanie zabezpečených TLS pripojení pomocou TLS rozšírenia ALPN.
  • Zrealizovaná preddefinovaná úloha pg_maintain, poskytujúca používateľovi právo vykonávať operácie súvisiace s údržbou DBMS.
  • Do nástroja pg_basebackup, ktorý sa používa na vytváranie záloh DB, bola pridaná podpora pre inkrementálne zálohy. Na rekonštrukciu celej zálohy z množiny inkrementálnych záloh bola navrhnutá nová utilita pg_combinebacku. Do nástroja pg_dump bola pridaná možnosť „—filter“ na výber objektov zahrnutých do zálohy.
  • Pri analýze dotazov pomocou SQL príkazu „EXPLAIN“ bol implementovaný výstup času stráveného čítaním a zapisovaním lokálnych blokov pri vstupe/výstupe. Príkazu „EXPLAIN“ boli tiež pridané dve nové možnosti „MEMORY“ a „SERIALIZE“, pričom pomocou nich je možné určiť veľkosť využitej pamäte a čas strávený premenou dát na prenos po sieti.
  • Zabezpečená indikácia postupu vykonávania operácie VACUUM s indexmi.
  • Pridané systémové zobrazenie pg_wait_events, ktoré v kombinácii so zobrazením pg_stat_activity umožňuje podrobnejšie preskúmať príčiny, prečo aktívne relácie čakajú.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster