Vydání PostgreSQL 15

Po roce vývoje byla zveřejněna nová stabilní větev PostgreSQL 15 DBMS. Aktualizace pro novou větev budou vydávány během pěti let do listopadu 2027.

Hlavní inovace:

  • Přidána podpora pro SQL příkaz "MERGE", který připomíná výraz "INSERT ... ON CONFLICT". MERGE umožňuje vytvářet podmíněné příkazy SQL, které kombinují operace INSERT, UPDATE a DELETE do jediného výrazu. Například pomocí MERGE můžete sloučit dvě tabulky vložením chybějících záznamů a aktualizací stávajících. SLOUČIT DO customer_account ca POUŽÍVÁNÍ posledních_transakcí t ON t.customer_id = ca.customer_id, PŘI SHODU PAK AKTUALIZUJTE SET zůstatek = zůstatek + hodnota_transakce, KDYŽ SE NEPŘIDÍ, PAK INSERT (id_zákazníka, zůstatek) HODNOTY (t.id_zákazníka, id_zákazníka, t.
  • Výrazně byly vylepšeny algoritmy pro třídění dat v paměti a na disku. V závislosti na typu dat testy ukazují zvýšení rychlosti třídění z 25 % na 400 %.
  • Funkce oken používající row_number(), rank(), dense_rank() a count() byly zrychleny.
  • Byla implementována možnost paralelního provádění dotazů s výrazem „SELECT DISTINCT“.
  • Mechanismus pro připojení externích tabulek Foreign Data Wrapper (postgres_fdw) implementuje podporu pro asynchronní potvrzení kromě dříve přidané schopnosti asynchronně zpracovávat požadavky na externí servery.
  • Přidána možnost používat algoritmy LZ4 a Zstandard (zstd) ke komprimaci protokolů transakcí WAL, což může při určité zátěži současně zlepšit výkon a ušetřit místo na disku. Aby se zkrátila doba obnovy po selhání, byla přidána podpora pro aktivní načítání stránek, které se objevují v protokolu WAL.
  • Obslužný program pg_basebackup přidal podporu pro kompresi záložních souborů na straně serveru pomocí metod gzip, LZ4 nebo zstd. Pro archivaci je možné použít vlastní moduly, což vám umožní obejít se bez nutnosti spouštět příkazy shellu.
  • Byla přidána řada nových funkcí pro zpracování řetězců pomocí regulárních výrazů: regexp_count(), regexp_instr(), regexp_like() a regexp_substr().
  • Do funkce range_agg() byla přidána možnost agregovat vícerozsahové typy („multirange“).
  • Přidán režim security_invoker, který vám umožňuje vytvářet pohledy, které běží jako volající uživatel, nikoli jako tvůrce pohledu.
  • Pro logickou replikaci byla implementována podpora pro filtrování řádků a specifikování seznamů sloupců, což umožňuje na straně odesílatele vybrat podmnožinu dat z tabulky pro replikaci. Nová verze navíc zjednodušuje správu konfliktů, například je nyní možné přeskočit konfliktní transakce a automaticky zakázat předplatné při zjištění chyby. Logická replikace umožňuje použití dvoufázových commitů (2PC).
  • Byl přidán nový formát logu – jsonlog, který ukládá informace ve strukturované podobě pomocí formátu JSON.
  • Administrátor má možnost delegovat individuální práva uživatelům ke změně určitých konfiguračních parametrů PostgreSQL serveru.
  • Obslužný program psql přidal podporu pro vyhledávání informací o nastavení (pg_settings) pomocí příkazu „\dconfig“.
  • Pro shromažďování statistik o provozu serveru je zajištěno využití sdílené paměti, což umožňuje zbavit se samostatného procesu shromažďování statistik a periodického resetování stavu na disk.
  • Byla poskytnuta možnost používat výchozí národní prostředí ICU „ICU Collation“; dříve bylo možné jako výchozí národní prostředí použít pouze národní prostředí libc.
  • Bylo navrženo vestavěné rozšíření pg_walinspect, které umožňuje kontrolovat obsah souborů s WAL protokoly pomocí SQL dotazů.
  • U veřejného schématu bylo všem uživatelům, s výjimkou vlastníka databáze, odebráno oprávnění ke spuštění příkazu CREATE.
  • V PL/Pythonu byla odstraněna podpora pro Python 2. Zastaralý exkluzivní režim zálohování byl odstraněn.

Doplnění: Od 19:00 do 20:00 (MSK) proběhne webinář o změnách v nové verzi s Pavlem Luzanovem (Postgres Professional). Pro ty, kteří se nemohou připojit k vysílání, je otevřeno nahrávání Pavlovy červnové zprávy „PostgreSQL 15: MERGE a další“ na PGConf.Russia.

Zdroj: opennet.ru

Přidat komentář