Po 10 letech od založení větve 10.x je k dispozici verze databázového systému MariaDB 11.0.0, která přináší několik významných vylepšení a změn, jež porušují kompatibilitu. Tato větev má zatím kvalitu alfa verze a bude připravena pro pracovní nasazení po provedení stabilizace. Vytvoření další významné větve MariaDB 12, která obsahuje změny porušující kompatibilitu, se očekává nejdříve za 10 let (v roce 2032).
Projekt MariaDB vyvíjí odnož MySQL, která se snaží co nejvíce zachovat zpětnou kompatibilitu a je charakterizována integrací dodatečných úložišť a rozšířenými funkcemi. Rozvoj MariaDB řídí nezávislá organizace MariaDB Foundation v souladu s otevřeným a transparentním procesem vývoje, který není závislý na jednotlivých výrobcích. Databázový systém MariaDB je dodáván místo MySQL v mnoha distribucích Linuxu (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) a je implementován v takových velkých projektech, jako jsou Wikipedia, Google Cloud SQL a Nimbuzz.
Klíčovým vylepšením ve větvi MariaDB 11 je přechod optimalizátoru dotazů na nový model nákladů (cost model), který zajišťuje přesnější predikci nákladů každého plánu vykonání dotazu. I když nový model pomáhá odstranit některé úzké hrdla s výkonem, existuje možnost, že nebude optimální ve všech scénářích a některé dotazy se mohou zpomalit, proto se doporučuje uživatelům zapojit se do testování a informovat vývojáře v případě problémů.
Předchozí používaný model byl dobře přizpůsoben k nalezení optimálního indexu, ale měl problémy s aplikací operací skenování tabulky, skenování indexu nebo výběru podle rozsahů. V novém modelu byla tato nevýhoda odstraněna změnou základní váhy operací s úložištěm. Při hodnocení výkonu operací závislých na rychlosti práce s diskem, jako je sekvenční skenování záznamů, se nyní předpokládá, že data jsou uchovávána na SSD disku, který zajišťuje rychlost čtení na úrovni 400 MB za sekundu. Dále bylo provedeno ladění i dalších váhových parametrů optimalizátoru, což například umožnilo implementaci možnosti použití indexů pro operace „ORDER BY/GROUP BY“ v poddotazech a urychlilo práci s velmi malými tabulkami.
Nový váhový model by měl umožnit výběr optimálnějšího plánu provádění dotazu v následujících situacích:
- Při používání dotazů, které zahrnují více než 2 tabulky.
- Při existenci indexů obsahujících velké množství stejných hodnot.
- Při používání rozsahů, které pokrývají více než 10% tabulky.
- Při existenci složitých dotazů, ve kterých nejsou všechny používané sloupce indexovány.
- Když jsou používány dotazy, které přitahují různé úložné motory (například když je v jednom dotaze odkaz na tabulky ve strojích InnoDB a Memory).
- Při použití FORCE INDEX pro zlepšení plánu dotazu.
- Při zhoršení plánu dotazu v případě použití „ANALYZE TABLE“.
- Když dotaz zahrnuje velké množství odvozených tabulek (velké množství vnořených SELECT).
- Při použití výrazů ORDER BY nebo GROUP BY, které spadají pod indexy.
Hlavní problémy s kompatibilitou v řadě MariaDB 11:
- Práva SUPER již neumožňují vykonávat akce, pro které jsou k dispozici zvlášť určené privilegium. Například pro změnu formátu binárních logů budou potřebná práva BINLOG ADMIN.
- Byla odstraněna implementace vyrovnávacího paměti změn v InnoDB.
- Byly prohlášeny za zastaralé innodb_flush_method a innodb_file_per_table.
- Byla prohlášena za zastaralou podpora názvů mysql*.
- Bylo prohlášeno za zastaralé nastavení parametru explicit_defaults_for_timestamp na hodnotu 0.
- Symbolické odkazy pro kompatibilitu s MySQL byly převedeny do samostatného balíčku.
- Výchozí hodnota parametru innodb_undo_tablespaces byla změněna na 3.
Zdroj: opennet.ru
