23 ноября 2025 вышел первый стабильный релиз ветки MariaDB 12.1: версия 12.1.2. Это rolling-линейка: фичи приходят быстрее, чем в LTS, но и обновляться лучше по плану, а не «на глаз» в пятницу вечером.
Ниже разбор изменений простым языком, без маркетинга, с прицелом на реальные серверы. В первую очередь на Debian (Ubuntu тоже подойдёт, но под сервер чаще берут именно Debian).
Контекст: что такое 12.1
Коротко про базу:
- MariaDB – форк MySQL, который давно идёт своим путём, но сохраняет совместимость по протоколу и SQL.
- Проектом занимается MariaDB Foundation, а не один вендор.
- Во многих дистрибутивах Linux MariaDB ставят вместо MySQL по умолчанию.
Ветка 12.1 – это свежие фичи, быстрые минорные релизы и не LTS. Не та серия, которую ставят «в бетон» и забывают на годы.
Практичный взгляд на 12.1:
- новые проекты и тестовые стенды – хороший кандидат;
- продакшен – да, но после тестов и с планом отката;
- нужен «бетон» на годы – оставить LTS и наблюдать.
Aria: сегментированный кэш ключей
В движке хранения Aria появился сегментированный кэш ключей. Раньше все ходили в один общий кэш. Теперь кэш можно делить на сегменты, и параллельные запросы меньше мешают друг другу.
Настройка:
SET GLOBAL aria_pagecache_segments = 8; -- от 1 до 128, по умолчанию 1
Где это имеет смысл:
- много параллельных запросов;
- активные Aria-таблицы (логи, временные данные);
- сервер, который под нагрузкой «задумывается» без явной причины.
Чем больше ядер и клиентов, тем заметнее эффект.
MDL: меньше metadata lock под нагрузкой
MDL (Metadata Lock) – блокировки на уровне схемы. Когда один клиент меняет структуру таблицы, остальные не должны «уезжать» в параллельную вселенную.
В 12.1 подтянули масштабируемость MDL. На практике:
- меньше подвисаний вида «Table metadata lock»;
- более предсказуемое поведение при миграциях и тяжёлых DDL;
- спокойнее жизнь на серверах с десятками и сотнями подключений.
Galera: параллельная асинхронная репликация
Если используется Galera Cluster, при асинхронной репликации между двумя кластерами теперь можно включить параллельную репликацию.
Типичный сценарий:
- есть основной кластер;
- есть резервный или отчётный кластер;
- между ними крутится репликация.
Раньше события часто применялись последовательно. Сейчас их можно разложить по потокам и быстрее догонять мастера. Для распределённых систем и DR-схем – заметный плюс.
server_audit: буфер записи в файл
Плагин server_audit научился буферизовать записи в файл.
Новая настройка:
SET GLOBAL server_audit_file_buffer_size = 1048576; -- например, 1 МБ
Вместо записи каждого события по отдельности база собирает их в буфер и пишет пачкой. В итоге:
- меньше I/O;
- меньше системных вызовов;
- аудит остаётся подробным, но перестаёт быть тормозом.
Если по требованиям безопасности логировать нужно всё, обновление заметное.
VECTOR: быстрее на 30-50%
Тип данных VECTOR (embedding-и и «умный» поиск) в 12.1.2 заметно ускорили. Операции поиска по векторам стали примерно на 30-50% быстрее.
Где пригодится:
- семантический поиск по текстам;
- подбор похожих товаров, статей, фильмов;
- рекомендательные системы для небольших проектов, где отдельная векторная база – уже перебор.
Если строится поиск «по смыслу», MariaDB 12.1 выглядит заметно интереснее.
caching_sha2_password
Добавили плагин caching_sha2_password:
- использует SHA-2 вместо SHA-1;
- совместим с одноимённым механизмом в новых MySQL.
Нормальный шаг по безопасности. Для свежих проектов логично сразу планировать работу с этим плагином, чтобы потом не мигрировать пароли в спешке.
Совместимость с Oracle
Для режима совместимости с Oracle добавили:
- ассоциативные массивы (INDEX BY);
- поддержку синтаксиса внешних объединений через
(+).
Если живёт старый Oracle-код, который хочется аккуратно переносить на MariaDB, переписывать руками придётся меньше. Для миграционных проектов это важно.
Подсказки оптимизатору
В 12.1 стало больше опций для управления оптимизатором: [NO_]JOIN_INDEX, [NO_]GROUP_INDEX, [NO_]ORDER_INDEX и другие.
Смысл простой: если оптимизатор упорно выбирает не тот план, можно аккуратно указать нужный путь. Это уже история для сложных отчётных запросов и больших схем, но такие рычаги полезны.
mariadb-dump: маски через –wildcards
В mariadb-dump появилась поддержка масок через --wildcards. Пример:
mariadb-dump -u root -p -L --wildcards "client*_shop" > shops.sql
Одной командой можно вытащить группу баз по шаблону, без скриптов, которые сначала собирают список.
Мелочи: FK и функциональные индексы
Пара приятных деталей:
- имена внешних ключей (
FOREIGN KEY) теперь должны быть уникальны только в рамках таблицы, а не всей БД; - появились функциональные индексы – индексы на выражениях, например
LOWER(email)илиDATE(created_at).
Пример функционального индекса:
CREATE INDEX idx_lower_email ON users ((LOWER(email))); SELECT * FROM users WHERE LOWER(email) = 'user@example.com' ORDER BY LOWER(email);
Раньше такие запросы плохо использовали индекс и часто сортировали в лоб. Теперь оптимизатор понимает, что выражение уже проиндексировано, и работает быстрее.
Как поставить 12.1.2 на Debian/Ubuntu
Стандартные репозитории Debian/Ubuntu обычно живут на более консервативных версиях. Если нужна именно 12.1.2, есть два нормальных пути:
- Подключить официальный репозиторий MariaDB и поставить
mariadb-server-12.1черезapt. Конфиг для APT удобно сгенерировать на сайте MariaDB (там есть генератор репозиториев). - Использовать Docker-образ MariaDB 12.1.2, а данные хранить в примонтированном томе.
Второй вариант часто удобнее:
- проще откатываться;
- не мешается с системной MySQL/MariaDB;
- удобно переносить между серверами.
Стоит ли обновляться
Обновляться смело:
- dev-стенды, тестовые окружения;
- новые проекты;
- Galera-кластеры, где важна скорость асинхронной репликации;
- кейсы, где нужны VECTOR, функциональные индексы и свежая Oracle/MySQL-совместимость.
Обновляться аккуратно, но имеет смысл:
- продакшены на MariaDB 12.0 – логичный шаг на 12.1;
- крупные инсталляции на 11.x, если очень нужны новые фичи.
Подождать:
- консервативные системы, где всё работает и важнее LTS и предсказуемость;
- проекты без VECTOR и без «умного» поиска, где база просто хранит обычные таблички.
Чеклист апгрейда
Чтобы апгрейд не превратился в ночной пожар:
- Бэкап всего. И дамп, и файловая копия каталога данных.
- Тест. Поднять копию БД на 12.1.2 и прогнать критичные сценарии и отчёты.
- Конфиги. Aria, Galera, аудит, логирование, лимиты памяти.
- Мониторинг. Сравнить нагрузку и задержки «до» и «после».
Итог
MariaDB 12.1.2 – рабочий стабильный rolling-релиз: быстрее Aria и VECTOR, умнее Galera, спокойнее аудит, плюс удобные мелочи вроде функциональных индексов и масок в mariadb-dump.
Если сервер на Debian/Ubuntu, нужны свежие фичи и есть нормальный процесс тестирования, ветка 12.1 стоит внимания. Главное – не превращать апгрейд в apt upgrade прямо на проде. Бэкапы, тест, план отката – и 12.1 работает на пользу, а не портит выходные.