Стабильный выпуск СУБД 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 и

Innodb_buffer_pool_pages_lru_freed.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Стабильный выпуск СУБД MariaDB 10.6», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.