Десет години след основаването на клон 10.x, е представено издаването на СУБД MariaDB 11.0.0, в което са предложени няколко значителни подобрения и промени, нарушаващи съвместимостта. В момента клонът има качеството на алфа версия и ще стане готов за работни приложения след провеждане на стабилизиране. Формированието на следващия значителен клон MariaDB 12, съдържащ промени, нарушаващи съвместимостта, се очаква не по-рано от 10 години (през 2032 г.).
Проектът MariaDB развива разклонение от MySQL, което по възможност запазва обратната съвместимост и се отличава с интеграция на допълнителни механизми за съхранение и разширени възможности. Развитието на MariaDB се ръководи от независима организация, MariaDB Foundation, в съответствие с открит и прозрачен процес на разработка, който не зависи от отделни производители. СУБД MariaDB се предоставя вместо MySQL в много дистрибуции на Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) и е внедрена в големи проекти, като Wikipedia, Google Cloud SQL и Nimbuzz.
Ключовото подобрение в клона MariaDB 11 е преминаването на оптимизатора на заявки към нова重量ова модел (cost model), който осигурява по-точно прогнозиране на тежестите на всеки план за изпълнение на заявка. Въпреки че новият модел позволява преодоляване на някои ограничителни фактори за производителността, не е изключено той да не бъде оптимален във всички сценарии и възможно е забавяне на някои заявки, затова на потребителите се препоръчва да участват в тестовете и да уведомят разработчиците в случай на възникване на проблеми.
Предишният модел беше подходящ за намиране на оптимален индекс, но имаше проблеми с приложимостта на операции по сканиране на таблици, сканиране на индекси или извличане по диапазони. В новия модел този недостатък е отстранен чрез изменение на базовото тегло на операциите с хранилищния двигател. При оценка на производителността на операции, зависещи от бързината на работа с диска, като последователно сканиране на записи, сега се предполага, че данните се съхраняват на SSD диск, който осигурява скорост на прочит от 400MB в секунда. Допълнително е извършен тунинг и на други теглови параметри на оптимизатора, което, например, позволи реализация на възможността за използване на индекси за операции „ORDER BY/GROUP BY“ в подзапроси и ускоряване на работата с много малки таблици.
Отбелязва се, че новата теглова модел ще позволи да се избира по-оптимален план за изпълнение на запитване в следните ситуации:
- При използване на запитвания, обхващащи повече от 2 таблици.
- При наличие на индекси, съдържащи голям брой еднакви стойности.
- При използване на диапазони, обхващащи повече от 10% от таблицата.
- При наличие на сложни запитвания, в които не всички използвани колони са индексирани.
- Когато се използват запитвания, включващи различни хранилищни двигатели (например, когато в едно запитване има връзки към таблици в двигателите InnoDB и Memory).
- При използване на FORCE INDEX за подобряване на плана на заявката.
- При влошаване на плана на заявката в случай на използване на „ANALYZE TABLE“.
- Когато запитването обхваща голям брой производни таблици (голям брой вложени SELECT).
- При използване на изрази ORDER BY или GROUP BY, попадащи под индекси.
Основни нарушения на съвместимостта в клон MariaDB 11:
- Права SUPER вече не позволяват извършването на действия, за които се изискват отделно зададени привилегии. Например, за промяна на формата на бинарните логове ще са необходими права BINLOG ADMIN.
- Премахната е реализацията на буфера за промени в InnoDB.
- Декларирани за остарели innodb_flush_method и innodb_file_per_table.
- Декларирана за остаряла поддръжката на имена mysql*.
- Декларирано за остаряло задаването на параметъра explicit_defaults_for_timestamp на стойност 0.
- В отделен пакет са изнесени символични връзки за съвместимост с MySQL.
- Стойността на параметъра innodb_undo_tablespaces по подразбиране е променена на 3.
Източник: opennet.ru
