Spoločnosť Oracle vytvorila novú vetvu databázového systému MySQL 9.1.0. Verzie MySQL Community Server 9.1.0 sú pripravené pre všetky hlavné distribúcie Linux, FreeBSD, macOS a Windows. V rámci implementovanej minulý rok novej modelu vydávania verzií, MySQL 9.1 patrí do vetiev „Inovácia“, ku ktorým bude patriť aj nasledujúce významné vydanie MySQL 9.2. Vetvy Inovácia sú odporúčané pre tých, ktorí chcú skôr získať prístup k novej funkcionalite, sú publikované každé 3 mesiace a sú podporované len do vydania nasledujúcej významnej verzie (napríklad po vydaní vetvy 9.1 prestáva podpora vetvy 9.0). V lete budúceho roka plánujú vytvoriť LTS vydanie, ktoré je odporúčané pre nasadenia, ktoré potrebujú predvídateľnosť a dlhodobé zachovanie nemenného správania. Po LTS vetve bude vytvorená nová vetva Inovácia — MySQL 10.0.
Hlavné zmeny v MySQL 9.1:
- Do operácie „CREATE VIEW“ bola pridaná podpora výrazu „IF NOT EXISTS“, ktorý umožňuje organizovať vytvorenie pohľadu iba vtedy, ak pohľad so zadaným menom ešte neexistuje, a vyhnúť sa vráteniu chyby, ak bol pohľad už vytvorený.
- Bol ukončený proces načítavania spúšťačov pri vykonávaní operácií, ktoré sú len na čítanie. Predtým sa spúšťače načítavali pri akomkoľvek prístupe k tabuľke, čo viedlo k zbytočnému využívaniu pamäte a zaťažovaniu CPU v situáciách, keď sa spúšťače nepoužívali (napríklad pri vykonávaní dopytov SELECT). V MySQL 9.1 je spracovanie a načítanie spúšťačov rozdelené do dvoch fáz: čítanie metadát o spúšťači a analýzu + vykonanie spúšťača. Dáta získané v prvej fáze sú uložené raz a následne zdieľané v rôznych inštanciách spúšťača. Analýza a vykonanie spúšťača sa uskutočňuje iba pre výrazy, ktoré vedú k zmene údajov. Okrem toho, aby sa znížila spotreba pamäte, bol namiesto statického prideľovania pamäte na spracovanie chýb v spúšťačoch prechod na dynamické prideľovanie pamäte na požiadanie.
- Bola rozšírená výstupná informácia operácie „EXPLAIN“, v ktorej sa teraz zobrazujú údaje o využívaní viacfázového čítania (multi-range) a aplikácii stratégie polozlúčenia (semijoin), pri ktorej sa pri operáciách JOIN spracovávajú riadky iba z jednej tabuľky.
- Zabezpečené atomárne vykonávanie operácií „CREATE DATABASE“ a „DROP DATABASE“ na ochranu pred zlyhaniami v prípade havarijného ukončenia alebo vzniku chýb na úrovni súborového systému počas vykonávania týchto operácií. Napríklad, predtým pri havarijnom ukončení mohla byť vytvorená neúplná nefunkčná štruktúra úložiska DB, ktorú bolo potrebné vyčistiť manuálne.
- V napísaných na JavaScript uložených procedúrach bola zabezpečená podpora typu VECTOR. Údaje s týmto typom je teraz možné prenášať v vstupných a výstupných parametroch.
- Pridaná možnosť autentifikácie pri pripojení k SYSTÉMOM DB pomocou protokolu OpenID Connect.
- Odstránených bolo 27 zraniteľností, z ktorých najzávažnejšej (CVE-2024-5535) bol pridelený kritický stupeň nebezpečenstva (9.1 z 10). Zraniteľnosť môže byť zneužitá na diaľku bez potreby autentifikácie. Problém spôsobuje čítanie údajov z oblasti mimo vyhradeného vyrovnávacieho pamäte v knižnici OpenSSL a vedie k havarijnému ukončeniu alebo úniku obsahu pamäte v odpovedi po pripojení s serverom s uvedením nesprávnych parametrov protokolu.
Zdroj: opennet.ru
