29.06.2022

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

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

Одновременно сформирован первый тестовый выпуск следующей значительной ветки MariaDB 10.8.1 и корректирующие обновления 10.6.6, 10.5.14, 10.4.23, 10.3.33 и 10.2.42. Выпуск 10.7.2 стал первым после перехода проекта на новую модель формирования релизов, подразумевающую сокращение срока поддержки с 5 лет до 1 года и переход к формированию значительных выпусков не раз в год, а раз в квартал.

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

  • Добавлен новый тип данных UUID, предназначенный для хранения 128-битных уникальных идентификаторов (Universally Unique Identifier).
  • Предложены новые функции для обработки данных в формате JSON: JSON_EQUALS() для сравнения идентичности двух JSON-документов и JSON_NORMALIZE() для приведения объектов JSON в форму, пригодную для выполнения операций сравнения (выполняет сортировку ключей и удаление пробелов).
  • Добавлена функция NATURAL_SORT_KEY() для сортировки строк с учётом цифровых значений (например, строка «v10» после сортировки займёт место после строки «v9»).
  • Добавлена функция SFORMAT() для произвольного форматирования строк — на вход подаётся строка с командами форматирования и список значений для подстановки (например, ‘SFORMAT(«The answer is {}.», 42)’).
  • Улучшено информирование об ошибках в INSERT-запросах, добавляющих данные в несколько строк (команда GET DIAGNOSTICS теперь выводит свойство ROW_NUMBER, указывающее на номер строки с ошибкой).
  • В состав включён новый плагин проверки паролей password_reuse_check, позволяющий ограничить повторное использование паролей одним пользователем (добавляет проверку, что новый пароль не совпадает с паролями, использованными в течение времени, заданном параметром password_reuse_check_interval).
  • Добавлена поддержка выражений «ALTER TABLE … CONVERT PARTITION .. TO TABLE» и «ALTER TABLE … CONVERT TABLE … TO PARTITION» для преобразования секции (partition) в таблицу и наоборот.
  • В утилиту mariadb-dump добавлена опция «—as-of» для сброса дампа, соответствующего определённому состоянию версионированной таблицы.
  • Для MariaDB Galera Cluster в PROCESSLIST реализованы новые состояния «waiting to execute in isolation», «waiting for TOI DDL», «waiting for flow control» и «waiting for certification».
  • В оптимизатор добавлен новый параметр «reorder«. Для многобайтовых строк повышена производительность сопоставления с учётом смысла символов в операциях с диапазонами ASCII.
  • В хранилище InnoDB повышена производительность выполнения операций вставки данных в пакетном режиме, а также предварительной сортировки и построения индексов.
  • Устранено 5 уязвимостей, детали по которым пока не раскрываются: CVE-2022-24052, CVE-2022-24051, CVE-2022-24050, CVE-2022-24048, CVE-2021-46659.
  • Из изменений в тестовом выпуске MariaDB 10.8.1 можно отметить реализацию индексов, отсортированных в порядке убывания, которые позволяют заметно поднять производительность операций ORDER BY при выборке в обратном порядке. Для хранимых функций добавлены спецификаторы IN, OUT, INOUT и IN OUT. В InnoDB снижено число операций записи при ведении лога отката операций (redo).

Источник.