Опубликован выпуск СУБД MariaDB 12.1.2, который отмечен как первый стабильный релиз ветки 12.1. Ветка MariaDB 12.1 отнесена к промежуточным выпускам (rolling), продолжает постепенное развитие функциональности и пришла на смену ветке MariaDB 12.0. Одновременно опубликован выпуск MariaDB 12.2.1, имеющий статус кандидата в релизы. Ветка MariaDB 12.1 будет сопровождаться до формирования выпуска 12.2.2.
Проектом MariaDB развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с открытым и прозрачным процессом разработки, не зависящим от отдельных производителей. MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) и внедрён в таких крупных проектах, как Wikipedia, Google Cloud SQL и Nimbuzz.
Среди изменений в ветке MariaDB 12.1:
- В движке хранения Aria реализован сегментированный кэш ключей, в котором ключи разбиваются на группы, хранимые в отдельных сегментах кэша. Новый кэш позволил повысить производительность паралеллельного выполнения запросов разными пользователями. Число сегментов задаётся через переменную aria_pagecache_segments, которая может принимать значения от 1 (по умолчанию) до 128.
- Улучшена масштабируемость блокировок MDL (Metadata Lock).
- Разрешено использование репликации в параллельном режиме при асинхронной репликации данных между двумя кластерами Galera.
- В плагин для ведения лога аудита добавлена поддержка буферизации операции записи в лог. Размер буфера задаётся через переменную server_audit_file_buffer_size.
- На 30-50% ускорены операции поиска для данных с типом VECTOR.
- Добавлен новый плагин аутентификации caching_sha2_password, применяющий для хэширования алгоритм SHA2 вместо SHA1. Плагин совместим с одноимённым плагином, появившемся в MySQL 9.0.
- В режиме совместимости с СУБД Oracle реализована поддержка ассоциативных массивов (INDEX BY) и синтаксиса “( + )” для определения внешних слияний (outer join), например: SELECT * FROM table1, table2 WHERE table1.rec_num = table2.fk_table1( + ); TYPE type_name TABLE OF rec_type_name INDEX BY idx_type_name;
- Добавлены новые опции управления оптимизатором: [NO_]JOIN_INDEX, [NO_]GROUP_INDEX, [NO_]ORDER_INDEX, [NO_]INDEX, [NO_]SPLIT_MATERIALIZED, [NO_]DERIVED_CONDITION_PUSHDOWN, [NO_]MERGE.
- В утилиту mariadb-dump добавлена возможность указания масок (например, “database_*”), используя опцию “-L” (–wildcards).
- Убрано требование по уникальности идентификаторов внешних ключей (foreign key) в контексте всей БД (достаточно уникальности на уровне таблицы).
- Добавлена возможность использования индексов на основе функций (functional index) для повышения производительности операций GROUP/ORDER BY.
- В результатах трассировки оптимизатора обеспечен показ определений
таблиц и представлений.