Oracle pārcēla Hypergraph vaicājumu optimizatoru un pilnu JSON Duality skatu rakstīšanu no maksas MySQL Enterprise izdevuma uz bezmaksas Community izdevumu. Tas notika ar MySQL 9.7, pirmo jauno ilgtermiņa laidienu (LTS) kopš 8.4. Pēdējais labojumu laidiens 9.7.1 iznāca 3. jūnijā.
Izstrādātājiem un datubāzu administratoriem, kas MySQL uztur paši, tas nozīmē konkrētas funkcijas bez licences maksas. Percona savā analīzē uzskaita četras Group Replication sastāvdaļas, kas mainīja izdevumu, kā arī optimizatora un JSON izmaiņas.
MySQL kopš 8.0 izmanto kalendāra versijas ar diviem laidienu veidiem. Innovation laidieni nāk bieži, bet tos atbalsta tikai līdz nākamajam, savukārt LTS laidieni saņem labojumus vairākus gadus. 9.7 ir jaunais LTS enkurs pēc 8.4. Community izdevums ir bezmaksas un ar GPL licenci. Vairākus gadus novērošanas un augstas pieejamības funkcijas bija tikai maksas Enterprise pusē, tāpēc paškonfigurētas kopas tagad iegūst tādu pašu ieskatu replikācijā kā maksas klienti.
Hypergraph optimizators pieņem lēmumus pēc cenas
Hypergraph optimizators nomaina veco left-deep meklēšanas ietvaru. Vecais MySQL optimizators pēc noklusējuma izvēlējās nested-loop savienojumus. Jaunais optimizators salīdzina nested-loop un hash savienojumu izmaksas un atļauj arī bushy plānus, kuros savienojumu koks nav lineārs.
Percona tests uz vienu daudztabulu vaicājumu parādīja astoņas reizes ātrāku izpildi: 4 sekundes saruka līdz 0,498 sekundēm. Optimizatoru var ieslēgt sesijas vai globālā līmenī bez servera restarta. Bet ātrums nav garantēts katrā gadījumā.
“Ne visi vaicājumi darbojas ātrāk,” brīdina Percona dibinātājs Pīters Zaicevs (InfoQ) un iesaka pārbaudīt katru slodzi pirms pārslēgšanās.
Ieguvumu visvairāk redz sarežģītos vaicājumos ar daudzām tabulām un apakšvaicājumiem, kur savienojumu secība būtiski maina izpildes laiku. Vienkāršiem vaicājumiem vecais optimizators bieži strādā tikpat labi.
JSON Duality skati tagad pieņem rakstīšanu
JSON Duality skati ļauj vienus un tos pašus relāciju datus apstrādāt kā JSON dokumentus. Līdz 9.7 Community versijā šos skatus varēja tikai definēt ar DDL. Tagad Community serveris atbalsta INSERT, UPDATE un DELETE operācijas uz šiem skatiem. Auto-increment kolonnas darbojas visos izdevumos.
Ideja nāk no Oracle datubāzes. Viens skats sasaista vairākas tabulas un uzrāda tās kā vienotu JSON dokumentu ar stabilu identifikatoru. Rakstīšanas atbalsts nozīmē, ka lietotne var nosūtīt visu dokumentu atpakaļ un serveris pats sadala izmaiņas pa attiecīgajām tabulām. Sīkāku uzskaitījumu dod oficiālās laidiena piezīmes.
Replikācijas metrika un pakāpeniska jaunināšana
Četras Group Replication sastāvdaļas pārgāja no Enterprise uz Community: Replication Applier Metrics, Group Replication Flow Control Statistics, Group Replication Resource Manager un Primary Election. Resource Manager var automātiski izmest mezglu, ja aplicētāja aizkave vai atmiņas patēriņš pārsniedz slieksni. Mezgla atgriešanai ir konfigurējams karantīnas periods.
Applier Metrics rāda transakciju gaitu caur tabulām replication_applier_metrics un replication_applier_progress_by_worker. Tā redzama daudzpavedienu aplicētāja veiktspēja pa katru darbinieku. Flow Control Statistics rāda, cik bieži kopa piebremzē ātros mezglus, lai lēnie paspētu. Līdz šim Community lietotāji šo skaitli neredzēja un varēja tikai minēt, kāpēc caurlaidspēja krīt.
Jauns mainīgais replica_allow_higher_version_source pēc noklusējuma ir ieslēgts. Tas ļauj zemākas versijas replikai pieslēgties augstākas versijas avotam. Komandas var jaunināt pakāpeniski un sākt ar replikām.
Drošība, konteineri un klonēšana
Autentifikācijā caching_sha2_password tagad var glabāt paroles ar PBKDF2 un SHA-512 atvasināšanu. Tas apgrūtina brutālā spēka uzbrukumus pret nozagtu paroļu glabātuvi.
Serveris tagad pareizi nolasa cpuset cgroup ierobežojumus. Konteineros MySQL vairs neredz visus resursdatora kodolus, bet gan tikai piešķirto skaitu. Tas maina iekšējo pavedienu un buferu aprēķinus, kas skar tos, kuri MySQL darbina Kubernetes vai Docker vidē ar CPU limitiem. Clone spraudnis atbalsta klonēšanu starp secīgām LTS versijām virs 9.7.0, kas atvieglo jaunu mezglu pievienošanu kopai.
Atbalsta termiņi un pāreja uz 9.7
MySQL 9.7 sāk jaunu LTS sēriju. Premier atbalsts beidzas 2031. gada 21. aprīlī. Paplašinātais atbalsts beidzas 2034. gada 21. aprīlī. Iepriekšējā LTS versija 8.4 pēc grafika sasniedz mūža beigas trīs gadu laikā. Daļa drošības un audita funkciju joprojām prasa Enterprise licenci.
Kas darbina 8.4, saņem drošu atjaunināšanas ceļu. Clone spraudnis kopē datus starp secīgām LTS versijām, tāpēc jaunas replikas var uzbūvēt no 9.7 avota. Kas grib izmēģināt Hypergraph optimizatoru, to var ieslēgt vienā sesijā un salīdzināt izpildes plānus ar veco optimizatoru pirms globālas pārslēgšanas. Innovation lietotājiem uz 9.5 vai 9.6 pāreja uz LTS nozīmē ilgāku labojumu atbalstu bez jaunām lielām izmaiņām, kas der ražošanas serveriem, kur stabilitāte ir svarīgāka par jaunākajām funkcijām.
Percona nopietnas CVE dēļ pārlēca pāri versijai 9.7.0 un savu pirmo būvējumu piegādāja kā 9.7.1, kas iznāca 3. jūnijā.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.