Oracle vytvořil novou větev MySQL 9.1.0 DBMS. Sestavení MySQL Community Server 9.1.0 jsou připravena pro všechny hlavní distribuce Linuxu, FreeBSD, macOS a Windows. Jako součást nového modelu vydání představeného v loňském roce je MySQL 9.1 klasifikována jako „Inovační“ větev, která bude zahrnovat také další hlavní vydání, MySQL 9.2. Inovační větve se doporučují pro ty, kteří chtějí včasný přístup k novým funkcím, jsou publikovány každé 3 měsíce a jsou podporovány pouze do vydání další významné verze (například po objevení se větve 9.1 byla podpora větve 9.0 ukončena ). Příští léto plánují vytvořit vydání LTS, doporučené pro implementace, které vyžadují předvídatelnost a dlouhodobé zachování nezměněného chování. Po větvi LTS vznikne nová větev Innovation - MySQL 10.0.
Hlavní změny v MySQL 9.1:
- Do operace „VYTVOŘIT ZOBRAZENÍ“ byla přidána podpora pro výraz „IF NOT EXISTS“, který umožňuje organizovat vytvoření pohledu pouze v případě, že pohled se zadaným názvem již neexistuje, a vyhnout se vracení chyby, pokud pohled již byl vytvořen.
- Zastaveno načítání spouštěčů při provádění operací pouze pro čtení. Dříve byly spouštěče načteny při každém přístupu k tabulce, což plýtvalo pamětí a vytvářelo zatížení CPU v situacích, kdy se spouštěče nepoužívaly (například při provádění dotazů SELECT). V MySQL 9.1 je zpracování a načítání spouštěčů rozděleno do dvou fází: čtení metadat o spouštěči a analýza + provedení spouštěče. Data získaná v první fázi jsou uložena jednou a poté sdílena mezi různými instancemi spouštění. Spouštěč je analyzován a spuštěn pouze pro výrazy, které mění data. Kromě toho, abychom snížili spotřebu paměti, místo statického přidělování vyrovnávacích pamětí pro zpracování chyb v triggerech jsme podle potřeby přešli na dynamické přidělování paměti.
- Výstup operace EXPLAIN byl rozšířen o informace o použití vícerozsahových čtení a použití strategie semijoin, ve které operace JOIN zpracovávají řádky pouze z jedné tabulky.
- Atomické provádění operací „CREATE DATABASE“ a „DROP DATABASE“ je poskytováno k ochraně před selháním v případě selhání nebo chyb na úrovni souborového systému během provádění těchto operací. Například dříve, když došlo k havárii „CREATE DATABASE“, mohla být vytvořena neúplná nefunkční struktura úložiště databáze, což vyžadovalo ruční zásah k vyčištění.
- Uložené procedury napsané v JavaScriptu poskytují podporu pro typ VECTOR. Data se zadaným typem lze nyní předávat ve vstupních a návratových parametrech.
- Přidána možnost autentizace při připojení k DBMS pomocí protokolu OpenID Connect.
- Bylo opraveno dvacet sedm zranitelností, z nichž nejzávažnější (CVE-2024-5535) byla přiřazena kritická úroveň závažnosti (9.1 z 10). Tuto zranitelnost lze zneužít vzdáleně bez ověřování. Problém je způsoben čtením mimo povolený rozsah v knihovně OpenSSL a vede k pádu nebo úniku paměti v odpovědi po připojení k server s indikací nesprávných parametrů protokolu.
Zdroj: opennet.ru
