Oracle uzņēmums ir izveidojis jaunu MySQL 9.1.0 datubāzu pārvaldības sistēmas (DBMS) nišu. MySQL Community Server 9.1.0 versijas ir sagatavotas visām populārākajām Linux, FreeBSD, macOS un Windows sistēmām. Saskaņā ar pērn ieviesto jauno versiju izstrādes modeli MySQL 9.1 ir klasificēts kā "Innovation" filiāle, kurai tiks pieskaitīta arī nākamā nozīmīgā MySQL 9.2 versija. Innovation filiāles ir ieteicamas tiem, kas vēlas agrāk iegūt piekļuvi jaunām funkcijām, tās tiek izlaistas ik pēc 3 mēnešiem un tiek atbalstītas tikai līdz nākamās lielās versijas iznākšanai (piemēram, pēc 9.1 filiāles iznākšanas 9.0 filiāles atbalsts tiek pārtraukts). Nākamā gada vasarā plānots izstrādāt LTS versiju, kas tiks ieteikta uzdevumiem, kuriem nepieciešama prognozējamība un ilgtspējīga uzvedība. Pēc LTS filiāles izveides tiks izveidota jauna Innovation filiāle - MySQL 10.0.
Galvenās izmaiņas MySQL 9.1:
- Uz "CREATE VIEW" komandu ir pievienota "IF NOT EXISTS" izteiksmes atbalsts, kas ļauj veidot skatu tikai tad, ja skats ar norādīto nosaukumu vēl nepastāv, un izvairīties no kļūdas atgriešanas, ja skats jau ir izveidots.
- Izpildot tikai lasīšanas operācijas, trigeru ielāde ir pārtraukta. Agrāk trigeri tika ielādēti pie jebkuras piekļuves tabulai, kas radīja atmiņas patēriņu un slodzi uz CPU, situācijās, kad trigeri netika izmantoti (piemēram, izpildot SELECT vaicājumus). MySQL 9.1 trigeru apstrāde un ielāde ir sadalīta divās posmās: metadatu par trigeriem lasīšana un trigeru izpilde. Dati, kas iegūti pirmajā posmā, tiek saglabāti vienu reizi un pēc tam kopīgi izmantoti dažādiem trigeru eksemplāriem. Trigeru analīze un izpilde notiek tikai datu izmaiņu izraisošiem izteiksmēm. Turklāt, lai samazinātu atmiņas patēriņu, tika veikts pāreja uz dinamisku atmiņas piešķiršanu trigeru kļūdu apstrādei pēc vajadzības.
- Uz "EXPLAIN" komandas rezultātu ir paplašināti dati, kuros tagad tiek parādīta informācija par daudzkārtēju lasīšanu (multi-range) un semijoin stratēģijas izmantošanu, kuras laikā JOIN operācijās tiek apstrādātas tikai rindiņas no vienas tabulas.
- Iegūtās atomārās izpildes operāciju «CREATE DATABASE» un «DROP DATABASE» garantija aizsardzībai pret kļūdām gadījumā, ja operācija tiek pārtraukta vai rodas kļūdas failu sistēmas līmenī šo operāciju izpildes laikā. Piemēram, iepriekš, ja «CREATE DATABASE» tika pārtraukta, varēja izveidoties nepilnīga un nefunkcionāla datu glabāšanas struktūra, kuras tīrīšanai bija nepieciešama manuāla iejaukšanās.
- JavaScript valodā rakstītās glabājamās procedūrās ir nodrošināta VEKTORA tipa atbalsts. Dati ar norādīto tipu tagad var tikt nodoti ievadīšanas un atgriezto parametru statusā.
- Ievesta iespēja autentificēties, pieslēdzoties DBMS, izmantojot OpenID Connect protokolu.
- Novērstas 27 ievainojamības, no kurām nopietnākā (CVE-2024-5535) saņēmusi kritisku bīstamības līmeni (9.1 no 10). Ievainojamību var izmantot attālināti, nepārbaudot autentifikāciju. Problēma radusies, lasot datus no apgabala ārpus piešķirtā bufera OpenSSL bibliotēkā, un tā var novest pie avārijas vai atmiņas satura noplūdes atbildē pēc savienojuma izveides ar serveri nepareizi norādītiem protokola parametriem.
Avots: opennet.lv
