Oracle on loonud uue MySQL andmebaasi haru versioonis 9.1.0. MySQL Community Server 9.1.0 kogud on ette valmistatud kĂ”igi peamiste Linuxi, FreeBSD, macOS ja Windowsi distributsioonide jaoks. Eelmisel aastal rakendatud uue versioonide loomise mudeli raames on MySQL 9.1 mÀÀratud «Innovation» harudesse, millele kuulub ka jĂ€rgmine mĂ€rkimisvÀÀrne versioon MySQL 9.2. Innovation harud on soovitatavad neile, kes soovivad varem pÀÀseda juurde uuele funktsionaalsusele, neid avaldatakse iga 3 kuu tagant ja need on toetatud ainult jĂ€rgmise mĂ€rkimisvÀÀrse versiooni vĂ€ljaandmise ajani (nt pĂ€rast 9.1 haru ilmumist lĂ”petatakse 9.0 haru toetamist). JĂ€rgmisel suvel plaanitakse vĂ€lja anda LTS versioon, mis on soovitatav rakendustele, millele on vajalik ennustatavus ja pikaajaline muutumatuse sĂ€ilitamine. LTS harule jĂ€rgneb uus Innovation haru â MySQL 10.0.
Peamised muudatused MySQL 9.1:
- KÀsklusesse «CREATE VIEW» on lisatud vÀljendi «IF NOT EXISTS» tugi, mis vÔimaldab luua vaadet ainult juhul, kui antud nimega vaadet ei ole veel loodud, vÀltides seelÀbi vea tagastamist, kui vaade on juba loodud.
- Lugemine toimetamine, mis on seotud ainult lugemisega, lĂŒkatakse tagaplaneerima. Varem laaditi trigerid alla igal tabeli juurdepÀÀsu korral, mis viis mĂ€lukasutuse suurenemiseni ja CPU koormuse tekkimiseni olukordades, kus trigerid ei olnud kasutusel (nt SELECT pĂ€ringute tĂ€itmisel). MySQL 9.1-s on trigerite kĂ€itlemine ja laadimine jaotatud kaheks etapiks: trigeri metadata lugemine ja trigeri parsimine+tĂ€itmine. Esimese etapi tulemused salvestatakse ĂŒks kord ja neid jagatakse erinevates trigeri instantsides. Trigeri parsimine ja tĂ€itmine toimub ainult siis, kui toimuvad andmete muutmise vĂ€ljendid. Lisaks, et vĂ€hendada mĂ€lukasutust, on trigerite veahaldusbufferite jaoks ĂŒlemineku asemel staatilisest dĂŒnaamiliseks mĂ€luhalduseks, mis toimub vastavalt vajadusele.
- Laieneb operatsiooni âEXPLAINâ vĂ€ljund, mis nĂ€itab nĂŒĂŒd teavet mitme vahemiku lugemise (multi-range) kasutamise ja poolĂŒhinemise strateegia (semijoin) rakendamise kohta, mille abil JOIN operatsioonide kĂ€igus töödeldakse ainult ĂŒhe tabeli ridu.
- Tagatud on atomaarne operatsioonide "CREATE DATABASE" ja "DROP DATABASE" tĂ€itmine, et kaitsta tĂ”rgete eest, kui toimuvad sĂŒsteemi tĂ”rked vĂ”i failisĂŒsteemi tasandi vead nende operatsioonide tĂ€itmise ajal. NĂ€iteks varasemalt vĂ”is "CREATE DATABASE" Ă€kilise katkemise korral luua mittetĂ€ieliku ja mittetoimiva andmebaasi struktuuri, mille puhastamiseks oli vajalik kĂ€sitsi sekkumine.
- JavaScriptis kirjutatud salvestatud protseduurides on tagatud VECTOR tĂŒĂŒbi tugi. Sellist tĂŒĂŒpi andmed saavad nĂŒĂŒd edastada sisendi ja vĂ€ljastusparameetrites.
- Lisatud on autentimise vĂ”imalus andmebaasi haldussĂŒsteemiga ĂŒhenduse loomisel, kasutades OpenID Connect protokolli.
- Eemaldatud on 27 haavatavust, mille hulgas kĂ”ige tĂ”sisem (CVE-2024-5535) on mÀÀratud kriitiliseks tasemeks (9.1 skaalal 10). Haavatavust saab kasutada kaugelt, ilma autentimist tegemata. Probleem on pĂ”hjustatud andmete lugemisest vĂ€ljaspool eraldatud puhvrialale OpenSSLi teegis ja see toob kaasa Ă€kilise katkemise vĂ”i mĂ€lu sisu leke vastuses pĂ€rast ĂŒhenduse loomist, serveriga kui protokolli valeid parameetreid on nĂ€idatud.
Allikas: opennet.ru
