MariaDB 12.1.2: стабильный rolling-релиз с ускорениями Aria, VECTOR и Galera

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, есть два нормальных пути:

  1. Подключить официальный репозиторий MariaDB и поставить mariadb-server-12.1 через apt. Конфиг для APT удобно сгенерировать на сайте MariaDB (там есть генератор репозиториев).
  2. Использовать Docker-образ MariaDB 12.1.2, а данные хранить в примонтированном томе.

Второй вариант часто удобнее:

  • проще откатываться;
  • не мешается с системной MySQL/MariaDB;
  • удобно переносить между серверами.

Стоит ли обновляться

Обновляться смело:

  • dev-стенды, тестовые окружения;
  • новые проекты;
  • Galera-кластеры, где важна скорость асинхронной репликации;
  • кейсы, где нужны VECTOR, функциональные индексы и свежая Oracle/MySQL-совместимость.

Обновляться аккуратно, но имеет смысл:

  • продакшены на MariaDB 12.0 – логичный шаг на 12.1;
  • крупные инсталляции на 11.x, если очень нужны новые фичи.

Подождать:

  • консервативные системы, где всё работает и важнее LTS и предсказуемость;
  • проекты без VECTOR и без «умного» поиска, где база просто хранит обычные таблички.

Чеклист апгрейда

Чтобы апгрейд не превратился в ночной пожар:

  1. Бэкап всего. И дамп, и файловая копия каталога данных.
  2. Тест. Поднять копию БД на 12.1.2 и прогнать критичные сценарии и отчёты.
  3. Конфиги. Aria, Galera, аудит, логирование, лимиты памяти.
  4. Мониторинг. Сравнить нагрузку и задержки «до» и «после».

Итог

MariaDB 12.1.2 – рабочий стабильный rolling-релиз: быстрее Aria и VECTOR, умнее Galera, спокойнее аудит, плюс удобные мелочи вроде функциональных индексов и масок в mariadb-dump.

Если сервер на Debian/Ubuntu, нужны свежие фичи и есть нормальный процесс тестирования, ветка 12.1 стоит внимания. Главное – не превращать апгрейд в apt upgrade прямо на проде. Бэкапы, тест, план отката – и 12.1 работает на пользу, а не портит выходные.

Источники и ссылки


Комментарии загружаются…