Oracle je stvorio novu granu MySQL 9.1.0 DBMS-a. MySQL Community Server 9.1.0 nadogradnje su pripremljene za sve glavne Linux, FreeBSD, macOS i Windows distribucije. Kao dio novog modela izdanja predstavljenog prošle godine, MySQL 9.1 je klasificiran kao grana "Inovacija", koja će također uključivati sljedeće veliko izdanje, MySQL 9.2. Inovacijske grane preporučuju se onima koji žele rani pristup novim funkcionalnostima, objavljuju se svaka 3 mjeseca i podržavaju samo do objave sljedećeg značajnog izdanja (npr. nakon pojave grane 9.1 ukinuta je podrška za granu 9.0) ). Sljedeće ljeto planiraju izraditi LTS izdanje, preporučeno za implementacije koje zahtijevaju predvidljivost i dugoročno očuvanje nepromijenjenog ponašanja. Nakon LTS ogranka formirat će se novi ogranak Innovation - MySQL 10.0.
Glavne promjene u MySQL 9.1:
- Podrška za izraz "IF NOT EXISTS" dodana je operaciji "CREATE VIEW", koja vam omogućuje organiziranje stvaranja pogleda samo ako pogled s navedenim nazivom već ne postoji i izbjegava vraćanje pogreške ako pogled je već stvoren.
- Zaustavljeno učitavanje okidača prilikom izvođenja operacija samo za čitanje. Prethodno su se okidači učitavali kad god se pristupilo tablici, trošeći memoriju i stvarajući opterećenje CPU-a u situacijama kada se okidači nisu koristili (na primjer, prilikom izvršavanja SELECT upita). U MySQL 9.1 obrada i učitavanje okidača podijeljeni su u dvije faze: čitanje metapodataka o okidaču i raščlanjivanje + izvršavanje okidača. Podaci dobiveni u prvoj fazi pohranjuju se jednom, a zatim dijele između različitih instanci okidača. Okidač se analizira i izvršava samo za izraze koji mijenjaju podatke. Osim toga, kako bismo smanjili potrošnju memorije, umjesto statičke dodjele međuspremnika za obradu pogrešaka u okidačima, prebacili smo se na dinamičku dodjelu memorije prema potrebi.
- Izlaz operacije EXPLAIN je proširen kako bi prikazao informacije o korištenju čitanja s više raspona i korištenju strategije poluspojivanja, u kojoj operacije JOIN obrađuju retke iz samo jedne tablice.
- Atomsko izvršenje operacija “CREATE DATABASE” i “DROP DATABASE” omogućeno je za zaštitu od kvarova u slučaju pada ili grešaka na razini datotečnog sustava tijekom izvođenja ovih operacija. Na primjer, ranije, kada se “CREATE DATABASE” sruši, mogla se stvoriti nepotpuna neradna struktura pohrane baze podataka, što je zahtijevalo ručnu intervenciju za čišćenje.
- Pohranjene procedure napisane u JavaScriptu pružaju podršku za tip VECTOR. Podaci navedene vrste sada se mogu proslijediti u ulaznim i povratnim parametrima.
- Dodana je mogućnost autentifikacije prilikom povezivanja na DBMS pomoću OpenID Connect protokola.
- Ispravljeno je dvadeset i sedam ranjivosti, od kojih je najozbiljnija (CVE-2024-5535) dobila kritičnu razinu ozbiljnosti (9.1 od 10). Ranjivost se može iskoristiti daljinski bez autentifikacije. Problem je uzrokovan čitanjem izvan granica u OpenSSL biblioteci i dovodi do rušenja ili curenja memorije u odgovoru nakon povezivanja s poslužitelja s indikacijom netočnih parametara protokola.
Izvor: opennet.ru
