Стабильный выпуск СУБД MariaDB 10.4

После года разработки и шести предварительных выпусков подготовлен первый стабильный релиз новой ветки СУБД MariaDB 10.4, в рамках которой развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Поддержка новой ветки будет осуществляться 5 лет, до июня 2024 года.

Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с полностью открытым и прозрачным процессом разработки, не зависящим от отдельных вендоров. MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) и внедрён в таких крупных проектах, как Wikipedia, Google Cloud SQL и Nimbuzz.

Ключевые улучшения MariaDB 10.4:

  • В состав включена технология синхронной multi-master репликации Galera 4, позволяющая применять топологию active-active multi-master, допускающую чтение и запись для любого узла. При синхронной репликации все узлы всегда содержат актуальные данные, т.е. гарантируется отсутствие потерянных транзакций, так как транзакция фиксируется только после распространения данных по всем узлам. Репликация выполняется в параллельном режиме, на уровне строк, с передачей только информации об изменениях;
  • В Unix-подобных системах по умолчанию задействован плагин аутентификации unix_socket, позволяющий использовать присутствующие в системе учётные записи для подключения к СУБД при помощи локального unix-сокета;
  • Добавлена возможность назначения времени жизни пароля пользователя, после истечения которого пароль помечается просроченным. Для задания срока действия пароля в операциях «CREATE USER» и «ALTER USER» добавлено выражение «PASSWORD EXPIRE INTERVAL N DAY»;
  • Добавлена поддержка блокировки пользователей СУБД через выражение «ACCOUNT LOCK» в операциях «CREATE USER» и «ALTER USER»;
  • Существенно ускорено выполнение проверки привилегий в конфигурациях с большим числом пользователей или правил доступа;
  • Прекращено использование таблиц mysql.user и mysql.host. Для хранения учётных записей и глобальных привилегий теперь применяется таблица mysql.global_priv;
  • В плагинах аутентификации добавлена поддержка выражения «SET PASSWORD»;
  • Добавлена возможность использования более одного плагина аутентификации для каждой учётной записи, что может быть полезным для постепенного перевода пользователей на плагин ed25519. При создании пользователя root@localhost скриптом mysql_install_db по умолчанию теперь включается два плагина аутентификации — unix_socket и mysql_native_password;
  • В хранилище InnoDB реализована операция мгновенного удаления столбцов (ALTER TABLE … DROP COLUMN … ALGORITHM=INSTANT) и изменения порядка следования столбцов. Сокращён объем начального лога отката операций (redo log). Добавлена поддержка ротации ключей для innodb_encrypt_log. Реализован алгоритм проверки контрольных сумм
    innodb_checksum_algorithm=full_crc32. Обеспечено мгновенное расширение типа VARCHAR и изменение кодировки текста для непроиндексированных столбцов;

  • Усовершенствован оптимизатор. Добавлена возможность трассировки оптимизатора, включаемая через системную переменную optimizer-trace. По умолчанию включено ведение статистики, независимой от движков хранения.
    Появилось два новых режима use_stat_tables — COMPLEMENTARY_FOR_QUERIES и PREFERABLY_FOR_QUERIES. Включен режим optimize_join_buffer_size. Добавлены новые флаги rowid_filter и condition_pushdown_from_having;

  • Поддержка системных версионированных таблиц, в которых не только хранится актуальный срез данных, но сохраняется информация и о всех ранее внесённых изменениях, расширена операциями с диапазонами времени;
  • Добавлена новая команда «FLUSH SSL» для повторной загрузки SSL-сертификатов без перезапуска сервера;
  • В операции «INSTALL PLUGIN», «UNINSTALL PLUGIN» и «UNINSTALL SONAME» добавлена поддержка выражений «IF NOT EXISTS» и «IF EXISTS»;
  • Предложены стойкие к краху системные таблицы, для хранения которых применяется движок Aria;
  • Осуществлён переход на использование стандарта C++11 (задействованы атомарные операции);
  • Существенно увеличена производительность свойств локали «Collation» для Unicode, позволяющих задавать правила сортировки и методы сопоставления с учётом смысла символов;
  • Добавлен плагин для определения собственных типов полей;
  • Добавлена поддержка оконных UDF-функций (User-Defined Functions);
  • В операции «FLUSH TABLES» реализован режим «BACKUP LOCK», который можно использовать во время резервного копирования файлов БД;
  • Добавлена поддержка серверных команд, начинающихся с имени mariadb, альтернативных командам, начинающимся с «mysql» (например, mariadump вместо mysqldump).

Источник: opennet.ru