Стабильный выпуск СУБД MariaDB 10.6
9 июля 2021 года
После года разработки и трёх предварительных выпусков опубликован первый стабильный релиз новой ветки СУБД MariaDB 10.6, в рамках которой развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Поддержка новой ветки будет осуществляться 5 лет, до июля 2026 года.
Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с полностью открытым и прозрачным процессом разработки, не зависящим от отдельных производителей. MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) и внедрён в таких крупных проектах, как Wikipedia, Google Cloud SQL и Nimbuzz.
Ключевые улучшения MariaDB 10.6:
- Обеспечена атомарность выполнения выражений "CREATE TABLE|VIEW|SEQUENCE|TRIGGER", "ALTER TABLE|SEQUENCE", "RENAME TABLE|TABLES", "DROP TABLE|VIEW|VIEW|TRIGGER|DATABASE" (либо выражение полностью завершено, либо всё возвращается в исходное состояние). В случае операций "DROP TABLE", удаляющих разом несколько таблиц, атомарность обеспечивается на уровне каждой отдельной таблицы. Целью изменения является обеспечение целостности в случае краха сервера в процессе выполнения операции. Ранее, после краха могли оставаться временные таблицы и файлы, нарушаться синхронизация таблиц в движках хранения и frm-файлах, оставаться непереименованными отдельные таблицы при переименовании разом нескольких таблиц. Целостность обеспечивается за счёт ведения журнала восстановления состояния, путь к которому можно определить через новую опцию "--log-ddl-recovery=файл" (по умолчанию ddl-recovery.log).
- Реализована определённая в стандарте SQL 2008 конструкция "SELECT ... OFFSET ... FETCH", позволяющая вывести определённое число строк, начиная с указанного смещения, с возможностью использования параметра "WITH TIES" для прикрепления ещё оного следующего значения. Например, выражение "SELECT i FROM t1 ORDER BY i ASC OFFSET 1 ROWS FETCH FIRST 3 ROWS WITH TIES" отличается от конструкции "SELECT i FROM t1 ORDER BY i ASC LIMIT 3 OFFSET 1" выводом ещё одного элемента, следующего в хвосте (вместо 3 будет выведено 4 строки).
- Для движка InnoDB реализован синтаксис "SELECT ... SKIP LOCKED", позволяющий исключить строки, для которых не может быть выставлена блокировка ("LOCK IN SHARE MODE" или "FOR UPDATE").
- Реализована возможность игнорирования индексов (в MySQL 8 подобная функциональность именуется "невидимыми индексами"). Пометка индекса для игнорирования осуществляется при помощи флага IGNORED в выражении "ALTER TABLE", после чего индекс остаётся видимым и обновляемым, но не используется оптимизатором.
- Добавлена функция JSON_TABLE(), предназначенная для преобразования данных JSON в реляционную форму. Например, документ JSON можно преобразовать для использования в контексте таблицы, которую можно указать внутри блока FROM в выражении SELECT.
- Улучшена совместимость с СУБД Oracle: Добавлена поддержка анонимных подзапросов внутри блока FROM. Реализована конструкция MINUS (эквивалент EXCEPT). Добавлены функции ADD_MONTHS(), TO_CHAR(), SYS_GUID() и ROWNUM().
- В движке InnoDB ускорена вставка в пустые таблицы. Формат строк COMPRESSED по умолчанию переведён в режим только для чтения. Схема SYS_TABLESPACES пришла на смену SYS_DATAFILES и напрямую отражает состояния в ФС. Для временного табличного пространства обеспечена поддержка отложенной записи. Прекращена поддержка старого алгоритма контрольных сумм, сохранявшегося для совместимости с MariaDB 5.5.
- В системе репликации размер значения параметра master_host увеличен с 60 до 255 символов, а master_user до 128. Добавлена переменная binlog_expire_logs_seconds для настройки времени устаревания бинарного лога в секундах (ранее время сброса определялось только в днях через переменную expire_logs_days).
- В механизм синхронной multi-master репликации Galera реализована переменная wsrep_mode, для настройки параметров API WSREP (Write Set REPlication). Разрешён перевод Galera с незашифрованных коммуникаций на использование TLS без остановки кластера.
- Реализована схема sys-schema, в которой собрана коллекция из представлений, функций и процедур для анализа операций с БД.
- Добавлены служебные таблицы для анализа производительности репликации.
- В набор информационных таблиц добавлены представления INFORMATION_SCHEMA.KEYWORDS и INFORMATION_SCHEMA.SQL_FUNCTIONS, выводящие список доступных ключевых слов и функций.
- Удалены хранилища TokuDB и CassandraSE.
- Кодировка utf8 переведена с четырёхбайтового представления utf8mb4 (U+0000..U+10FFFF) на трёхбайтовое utf8mb3 (охватывает диапазон Unicode U+0000..U+FFFF).
- Добавлена поддержка активации по сокету в systemd.
- В плагине GSSAPI добавлена поддержка имён групп Active Directory и SID.
- Добавлена проверка наличия файла конфигурации $MARIADB_HOME/my.cnf в дополнение к $MYSQL_HOME/my.cnf.
- Реализованы новые системные переменные
binlog_expire_logs_seconds, innodb_deadlock_report, innodb_read_only_compressed, wsrep_mode и
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.