Представлена новая значительная ветка СУБД MariaDB 11

Спустя 10 лет с момента основания ветки 10.x представлен выпуск СУБД MariaDB 11.0.0, в котором предложено несколько значительных улучшений и изменений, нарушающих совместимость. Ветка пока имеет качество альфа-выпуска и станет готовой для рабочих применений после проведения стабилизации. Формирование следующей значительной ветки MariaDB 12, содержащей изменения, нарушающие совместимость, ожидается не ранее чем через 10 лет (в 2032 году).

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

Ключевым улучшением в ветке MariaDB 11 является перевод оптимизатора запросов на новую весовую модель (cost model), обеспечивающую более точное предсказание весов каждого плана выполнения запроса. Несмотря на то, что новая модель позволяет избавиться от некоторых узких мест с производительностью, не исключено, что она будет оптимальной не во всех сценариях и возможно замедление каких-то запросов, поэтому пользователям рекомендуется принять участие в тестировании и уведомить разработчиков в случае возникновения проблем.

Ранее используемая модель хорошо подходила для нахождения оптимального индекса, но имела проблемы с применимостью операций сканирования таблицы, сканирования индекса или выборки по диапазонам. В новой модели данный недостаток устранён за счёт изменения базового веса операций с движком хранения. При оценке производительности операций, зависящих от скорости работы с диском, таких как последовательное сканирование записей, теперь предполагается, что данные хранятся на SSD-накопителе, обеспечивающем скорость чтения на уровне 400MB в секунду. Дополнительно проведён тюнинг и других весовых параметров оптимизатора, что, например, позволило реализовать возможность использования индексов для операций «ORDER BY/GROUP BY» в подзапросах и ускорить работу с очень маленькими таблицами.

Отмечается, что новая весовая модель позволит выбирать более оптимальный план выполнения запроса в следующих ситуациях:

  • При использовании запросов, охватывающих более 2 таблиц.
  • При наличии индексов, содержащих большое число одинаковых значений.
  • При использовании диапазонов, охватывающих более 10% таблицы.
  • При наличии сложных запросов, в которых не все используемые столбцы индексируются.
  • Когда используются запросы, привлекающие разные движки хранения (например, когда в одном запросе есть обращение к таблицам в движках InnoDB и Memory).
  • При использовании FORCE INDEX для улучшения плана запроса.
  • При ухудшении плана запроса в случае использования «ANALYZE TABLE».
  • Когда зпрос охватывает большое число производных таблиц (большое число вложенных SELECT).
  • При использовании выражений ORDER BY или GROUP BY, подпадающих под индексы.

Основные нарушения совместимости в ветке MariaDB 11:

  • Права SUPER больше не позволяют выполнять действия, для которых доступны отдельно выставляемые привилегии. Например, для изменения формата бинарных логов потребуются права BINLOG ADMIN.
  • Удалена реализация буфера изменений в InnoDB.
  • Объявлены устаревшими innodb_flush_method и innodb_file_per_table.
  • Объявлена устаревшей поддержка имён mysql*.
  • Объявлено устаревшим выставление параметра explicit_defaults_for_timestamp в значение 0.
  • В отдельный пакет вынесены символические ссылки для совместимости с MySQL.
  • Значение параметра innodb_undo_tablespaces по умолчанию изменено на 3.

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

Добавить комментарий