
29 мая 2026 года состоялся выпуск СУБД MariaDB Server 12.3.2, который отмечен как первый стабильный релиз ветки 12.3. Ветка MariaDB 12.3 отнесена к выпускам с длительным сроком поддержки (LTS) и будет сопровождаться как минимум 5 лет (до июня 2029 года). Одновременно опубликован выпуск MariaDB 13.0.1, имеющий статус кандидата в релизы. Выпуск предыдущей ветки проекта с долгосрочной поддержкой MariaDB Server 11.8 LTS случился в июне 2025 года.
В рамках проекта MariaDB развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей.
Развитие проекта MariaDB курирует независимая организация MariaDB Foundation в соответствии с открытым и прозрачным процессом разработки, не зависящим от отдельных производителей.
Решение MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) и внедрено в таких крупных проектах, как Wikipedia, Google Cloud SQL и Nimbuzz.
По информации OpenNET, основные улучшения в MariaDB 12.3 по сравнению с прошлым LTS-выпуском проекта:
-
полностью переделана реализация бинарного лога (binlog), основные компоненты для ведения которого перенесены в движок InnoDB. Подобный перенос позволил избавиться от устаревшей логики синхронизации, ускорить репликацию и повысить производительность выполнения операций, связанных с записью данных. При тестировании новой реализации на высоконагруженных системах отмечен прирост производительности при большом числе операций записи до 4 раз. Для включения предложена настройка «binlog_storage_engine=innodb»;
-
на 30–50% повышена скорость векторного поиска с использованием типа VECTOR, применяемого в системах машинного обучения. Ускорение достигается благодаря оптимизации вычислений при поиске сходства между векторами в многомерных пространствах и реализации новой техники экстраполяции на основе вложенных векторных представлений (matryoshka embedding);
-
добавлены возможности для упрощения миграции с СУБД Oracle. В режиме совместимости с СУБД Oracle реализованы функции TO_NUMBER (преобразование строки в число), TO_DATE (преобразование строки в дату) и TRUNC (усечение даты, например, до часа, дня, месяца, года), а также появилась поддержка ассоциативных массивов (INDEX BY) и синтаксиса «( + )» для определения внешних слияний (outer join);
-
для повышения совместимости с MySQL добавлен плагин аутентификации caching_sha2_password, применяющий для хэширования алгоритм SHA2 вместо SHA1 и совместимый с одноимённым плагином из MySQL 9;
-
добавлен новый тип XMLTYPE для хранения данных в формате XML;
-
реализована возможность использования курсоров с параметризованными запросами (prepared statement);
-
добавлено выражение «SET PATH» для задания порядка поиска компонентов схемы хранения при обращении к ним без указания имени схемы;
-
реализована поддержка операции «IS JSON» для проверки типа выражения JSON, определённой в стандарте SQL:2023;
-
в выражении «PARTITION BY KEY» реализована поддержка алгоритмов хэширования MYSQL51, MYSQL55, BASE31, CRC32C, XXH32 и XXH3;
-
в движке хранения Aria реализован сегментированный кэш ключей, в котором ключи разбиваются на группы, хранимые в отдельных сегментах кэша. Новый кэш позволил повысить производительность паралеллельного выполнения запросов разными пользователями. Число сегментов задаётся через переменную aria_pagecache_segments, которая может принимать значения от 1 (по умолчанию) до 128;
-
добавлена возможность использования индексов на основе функций (functional index) для повышения производительности операций GROUP/ORDER BY;
-
реализована поддержка выражения «CREATE GLOBAL TEMPORARY TABLE» для создания глобальных временных таблиц. Подобные временные таблицы удаляются после завершения сеанса и видны всем пользователям, но содержат данные, индивидуальные для каждого пользователя;
-
добавлена поддержка SSL-ключей, защищённых паролем. Пароль для разблокирования SSL-сертификатов может быть задан через переменную ssl_passphrase или вручную при запуске сервера;
-
добавлено выражение «SET SESSION AUTHORIZATION» для выполнения действия под другим пользователем при выставлении соответствующих привилегий (выражение можно рассматривать как аналог «sudo» для СУБД);
-
в плагин file_key_management.so добавлена поддержка хэшей SHA-2;
-
добавлена поддержка слабых курсорных переменных (weak cursor variable) предопределенного типа SYS_REFCURSOR, позволяющих возвращать курсор из хранимых процедур (в параметре OUT) или из функций (в выражении RETURN). Для ограничения максимального числа одновременно открытых курсоров добавлена системная переменная «max_open_cursors»;
-
в тип TO_CHAR добавлена поддержка формата FM (Fill Mode) для исключения добавочного заполнения. Например, запрос «SELECT CONCAT(‘/’, TO_CHAR(‘2020-01-06 10:11:12’, ‘FMDAY’), ‘/’);» вернёт «/Monday/» вместо «/Monday /»;
-
в утилиту mariadb-check и выражение CHECK TABLE добавлена поддержка таблиц от движка SEQUENCE;
-
в оптимизатор добавлена поддержка опций (hint), влияющих на построения плана оптимизаций: QB_NAME, NO_RANGE_OPTIMIZATION, NO_ICP, MRR, NO_MRR, BKA, NO_BKA, BNL, NO_BNL, SEMIJOIN, SUBQUERY, JOIN_FIXED_ORDER, JOIN_ORDER, JOIN_PREFIX, JOIN_SUFFIX, MAX_EXECUTION_TIME, [NO_]JOIN_INDEX, [NO_]GROUP_INDEX, [NO_]ORDER_INDEX, [NO_]INDEX, [NO_]SPLIT_MATERIALIZED, NO_ROWID_FILTER, INDEX_MERGE/NO_INDEX_MERGE, [NO_]DERIVED_CONDITION_PUSHDOWN и [NO_]MERGE. Опции подставляются в запрос в формате, совместимом с MySQL;
-
повышена производительность неупорядоченных выражений «LEFT JOIN» и упорядоченного сканирования при использовании выражения «PARTITION BY RANGE«;
-
в результатах трассировки оптимизатора обеспечен показ определений таблиц и представлений;
-
при выполнении операций слияния таблиц (JOIN) реализована оптимизация, учитывающая уникальность строк в подзапросах с выражением «GROUP BY» для более точного прогнозирования числа результирующих строк (out_rows) и корректного применения индексов;
-
улучшена масштабируемость блокировок MDL (Metadata Lock);
-
добавлена поддержка новых функций GIS (Geographic Information System): ST_Validate, MBRCoveredBy, ST_Simplif, ST_GeoHash, ST_LatFromGeoHash, ST_LongFromGeoHash, ST_PointFromGeoHash, ST_IsValid, ST_Collect;
-
добавлена поддержка триггеров, срабатывающих для нескольких событий. В выражении CREATE TRIGGER теперь можно перечислять подпадающие под него события, используя синтаксис «{ event [ OR … ] }»;
-
в плагин для ведения лога аудита добавлена поддержка буферизации операции записи в лог. Размер буфера задаётся через переменную server_audit_file_buffer_size. Реализовано сохранение в логе аудита информации о сетевых портах для входящих соединений (ранее отражался только хост);
-
в утилиту mariadb добавлена опция «—script-dir» для задания альтернативного каталога поиска скриптов, запускаемых командой SOURCE;
-
разрешено использование репликации в параллельном режиме при асинхронной репликации данных между двумя кластерами Galera;
-
в утилиту mariadb-dump добавлена возможность указания масок (например, «database_*»), используя опцию «-L» (—wildcards);
-
убрано требование по уникальности идентификаторов внешних ключей (foreign key) в контексте всей БД (достаточно уникальности на уровне таблицы);
-
сняты ограничения на уровень вложенности структур в функциях для работы с JSON (убран лимит JSON_DEPTH_LIMIT, который ранее принимал значение 32);
-
добавлена таблица TRIGGERED_UPDATE_COLUMNS в схеме INFORMATION_SCHEMA (INFORMATION_SCHEMA.TRIGGERED_UPDATE_COLUMNS), показывающая столбцы, изменяемые при срабатывании триггера;
-
в таблице PARAMETERS в схеме INFORMATION_SCHEMA реализован столбец PARAMETER_DEFAULT, содержащий значения по умолчанию параметров хранимых процедур;
-
удалены переменные big_tables, large_page_size и storage_engine, ранее объявленные устаревшими.
ссылка на оригинал статьи https://habr.com/ru/articles/1041520/