Kompania Oracle ka formuar një degë të re të DBMS MySQL 9.1.0. Ndërtimet MySQL Community Server 9.1.0 janë përgatitur për të gjitha distribucionet kryesore të Linux, FreeBSD, macOS dhe Windows. Në kuadër të modelit të ri të publikimit të versioneve të implementuar vitin e kaluar, MySQL 9.1 është renditur në degët "Innovation", në të cilat do të përfshihet gjithashtu publikimi i ardhshëm të rëndësishëm MySQL 9.2. Degët e Innovation rekomandohen për ata që duan të kenë qasje më herët në funksionalitetet e reja, publikohen çdo 3 muaj dhe mbështeten vetëm deri në publikimin e versionit të ardhshëm të rëndësishëm (p.sh., pas paraqitjes së degës 9.1, mbështetje për degën 9.0 ndërpritet). Verën e ardhshme pritet të formohet një version LTS, i rekomanduar për implementime që kërkojnë parashikueshmëri dhe ruajtjen e qëndrueshmërisë së sjelljes për një kohë të gjatë. Pas degës LTS do të formohet një degë e re Innovation - MySQL 10.0.
Ndryshimet kryesore në MySQL 9.1:
- Në operacionin "CREATE VIEW" është shtuar mbështetje për shprehjen "IF NOT EXISTS", e cila lejon krijimin e një pamjeje vetëm nëse një pamje me emrin e specifikuar nuk ekziston ende dhe shmang kthimin e gabimit nëse pamja tashmë është krijuar.
- Ngarkimi i treguesve është ndërprerë gjatë kryerjes së operacioneve që lidhen vetëm me leximin. Më parë, treguesit ngarkoheshin gjatë çdo qasjeje në tabelë, gjë që shkaktonte konsumimin e memories dhe ngarkesë të CPU-së në situata kur treguesit nuk ishin përdorur (p.sh., gjatë kryerjes së pyetjeve SELECT). Në MySQL 9.1, përpunimi dhe ngarkimi i treguesve janë ndarë në dy faza: leximi i metadata-ve për treguesin dhe analizimi + ekzekutimi i treguesit. Të dhënat e marra në fazën e parë ruahen një herë dhe pastaj shfrytëzohen për shembuj të ndryshëm të treguesit. Analizimi dhe ekzekutimi i treguesit kryhet vetëm për shprehjet që çojnë në ndryshimin e të dhënave. Për më tepër, për të reduktuar konsumimin e memories, në vend të alokimit statik të bufereve për përpunimin e gabimeve në tregues, është realizuar kalimi në alokimin dinamik të memories sipas nevojës.
- Të dhënat e operacionit "EXPLAIN" janë zgjeruar, duke paraqitur tani informacion mbi përdorimin e leximit me shumë intervale (multi-range) dhe zbatimin e strategjisë së gjysmë bashkimit (semijoin), ku gjatë operacioneve JOIN përpunohen rreshtat vetëm nga një tabelë.
- Janë siguruar ekzekutime atomike të operacioneve "CREATE DATABASE" dhe "DROP DATABASE" për të mbrojtur nga dështimet në rast të përfundimeve të papritura ose ndodhisë së gabimeve në nivelin e sistemit të skedarëve gjatë ekzekutimit të këtyre operacioneve. P.sh., më parë, në rast të përfundimit të papritur të "CREATE DATABASE", mund të ishte formuar një strukturë depoje BD e papërfunduar dhe jo funksionale, për pastrimin e së cilës kërkohej ndërhyrje manuale.
- Në procedurat e ruajtura të shkruara në JavaScript është siguruar mbështetje për tipin VECTOR. Të dhënat me këtë tip tani mund të kalohen në parametrat e hyrjes dhe atyre të kthimit.
- ĂshtĂ« shtuar mundĂ«sia e autentifikimit gjatĂ« lidhjes me DBMS duke pĂ«rdorur protokollin OpenID Connect.
- Janë eliminuar 27 vulnerabilitete, nga të cilat më seriozja (CVE-2024-5535) ka marrë nivelin e rrezikut kritik (9.1 nga 10). Vulnerabiliteti mund të shfrytëzohet në mënyrë të largët pa kaluar autentifikimin. Problemi shkaktohet nga leximi i të dhënave nga një zonë jashtë tamponit të alokuar në bibliotekën OpenSSL dhe rezulton në përfundime të papritura ose rrjedhje të përmbajtjes së memories në përgjigjen pas lidhjes me serverin me parametrat e gabuar të protokollit.
Burimi: opennet.ru
