Efter 10 år siden grundlæggelsen af branch 10.x er databasen MariaDB 11.0.0 blevet præsenteret, som introducerer flere væsentlige forbedringer og ændringer, der bryder kompatibiliteten. Denne version har endnu kvalitet af alpha-udgivelse og vil blive klar til arbejdsanvendelser efter stabilisering. Den næste betydelige version af MariaDB 12, som vil indeholde inkompatible ændringer, forventes ikke at komme før om 10 år (i 2032).
Projektet MariaDB er en afgrening fra MySQL, der i videst mulige omfang bevarer bagudkompatibilitet og adskiller sig ved integration af ekstra lagermotorer og udvidede funktioner. Udviklingen af MariaDB styres af den uafhængige organisation MariaDB Foundation i henhold til en åben og gennemsigtig udviklingsproces, der ikke er afhængig af enkeltproducenter. Databasen MariaDB leveres i stedet for MySQL i mange Linux-distributioner (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) og er implementeret i store projekter som Wikipedia, Google Cloud SQL og Nimbuzz.
En vigtig forbedring i MariaDB 11 er overgangen til en ny omkostningsmodel for forespørgselsoptimereren, som giver en mere præcis forudsigelse af vægtene for hver udførelsesplan for forespørgslerne. Selvom den nye model gør det muligt at afhjælpe nogle flaskehalse i ydeevnen, kan den muligvis ikke være optimal i alle scenarier, og der kan forekomme langsommelighed i nogle forespørgsler. Derfor opfordres brugerne til at deltage i testningen og informere udviklerne, hvis der opstår problemer.
Den tidligere anvendte model var velegnet til at finde den optimale indeks, men havde problemer med anvendeligheden af tabelscanning, indeksse scanning eller italsortering. I den nye model er denne ulempe blevet elimineret ved at ændre den grundlæggende vægt af operationer med lagermotoren. Ved vurderingen af præstationen af operationer, der afhænger af diskens hastighed, som sekventiel scanning af poster, antages det nu, at dataene opbevares på en SSD-enhed med en læsehastighed på 400MB pr. sekund. Desuden er tuningen af andre vægte for optimeringsmotoren blevet udført, hvilket for eksempel har gjort det muligt at bruge indekser til operationer "ORDER BY/GROUP BY" i underforespørgsler og forkorte behandlingstiden for meget små tabeller.
Det bemærkes, at den nye vægtmodel vil muliggøre valg af en mere optimal udførelsesplan for forespørgsler i følgende situationer:
- Når der anvendes forespørgsler, der omfatter mere end 2 tabeller.
- Når der er indekser, der indeholder et stort antal ens værdier.
- Når der anvendes intervaller, der dækker mere end 10% af tabellen.
- Når der er komplekse forespørgsler, hvor ikke alle brugte kolonner er indekserede.
- Når der anvendes forespørgsler, der involverer forskellige lagermotorer (for eksempel når der er adgang til tabeller i InnoDB og Memory i én forespørgsel).
- Når der anvendes FORCE INDEX for at forbedre forespørgselsplanen.
- Ved forringelse af forespørgselsplanen i tilfælde af brug af "ANALYZE TABLE."
- Når forespørgslen dækker et stort antal afledte tabeller (et stort antal indlejrede SELECTs).
- Når der anvendes ORDER BY eller GROUP BY udtryk, der understøttes af indekser.
De væsentligste kompatibilitetsproblemer i MariaDB 11:
- SUPER-rettigheder tillader ikke længere handlinger, for hvilke der er separat tildelte privilegier. For eksempel kræves der BINLOG ADMIN rettigheder for at ændre formatet af binære logs.
- Implementeringen af ændringsbufferen i InnoDB er blevet fjernet.
- innodb_flush_method og innodb_file_per_table er blevet erklæret forældede.
- Understøttelsen af navne mysql* er blevet erklæret forældet.
- Indstillingen explicit_defaults_for_timestamp kan ikke længere indstilles til 0.
- Symbolske links for kompatibilitet med MySQL er blevet udskilt til en separat pakke.
- Standardværdien af parameteren innodb_undo_tablespaces er ændret til 3.
Kilde: opennet.ru
