MySQL 9.1, широко распространённая система управления реляционными базами данных с открытым исходным кодом, содержит улучшения, новые функции и несколько устаревших возможностей. Среди наиболее заметных нововведений — обработка триггеров, особенно во время операций только для чтения.
В более ранних версиях триггеры, связанные с таблицей, полностью загружались и анализировались при каждом обращении к таблице, даже для операторов только для чтения, таких как оператор SELECT. Это не только расходовало память, но и без необходимости увеличивало время выполнения.
Теперь в MySQL 9.1 триггеры обрабатываются в два этапа. Сначала считываются только метаданные триггера, а синтаксический анализ откладывается до тех пор, пока он не понадобится (например, при изменении данных). Это значительно снижает потребление ресурсов для запросов только для чтения и повышает общую производительность.
Кроме того, для отслеживания использования кэша были добавлены новые переменные состояния сервера, такие как Table_open_cache_triggers_hits
и Table_open_cache_triggers_misses
, что ещё больше расширяет возможности мониторинга.
Команда EXPLAIN
, используемая для анализа планов выполнения запросов, также получила несколько обновлений. Теперь в выводе отображается более подробная информация о многодиапазонном чтении, стратегиях полуобъединения и единообразном форматировании строк условий. Это помогает разработчикам лучше понимать производительность запросов и эффективно оптимизировать свои базы данных.
Ещё одним примечательным дополнением является поддержка предложения IF NOT EXISTS
в операторе CREATE VIEW
. Это позволяет пользователям создавать представление, не беспокоясь о том, существует ли оно уже. Если оно уже существует, изменения не вносятся, а вместо ошибки выдаётся предупреждение.
В MySQL 9.1 также представлены защищённые от сбоев операторы CREATE DATABASE
и DROP DATABASE
. Это означает, что если таблицы используют механизм хранения данных, поддерживающий атомарные операции DDL, например InnoDB, то создание и удаление баз данных теперь являются полностью транзакционными.
В чём преимущество этого? Если коротко, то это помогает избежать несоответствий в случае неожиданного отключения сервера или ошибок при создании или удалении базы данных.
Что касается гибкости, то MySQL 9.1 теперь поддерживает типы данных VECTOR в хранимых программах на JavaScript. Это означает, что VECTOR
значения можно использовать в качестве входных и выходных аргументов в хранимых процедурах, что особенно полезно для приложений, использующих расширенные векторные операции.
Для пользователей MySQL Enterprise внедрение новых показателей репликации значительно улучшает наблюдение за процессами репликации. Теперь администраторы могут более эффективно отслеживать ход репликации и собирать полезную статистику, что упрощает устранение неполадок и поддержание стабильной среды репликации.
Кроме того, MySQL 9.1 теперь поддерживает OpenID Connect для повышения гибкости аутентификации и интеграции с современными системами единого входа. Эта функция доступна в MySQL Enterprise Edition, что упрощает управление пользователями, особенно в крупномасштабных средах.
Кроме того, новый компонент Option Tracker помогает отслеживать параметры сервера MySQL, в том числе связанные с установленными плагинами и компонентами. Этот компонент также доступен в составе MySQL Enterprise Edition и позволяет наглядно видеть все параметры, включенные на сервере.
Наконец, несмотря на то, что в MySQL 9.1 появилось много полезных функций, некоторые элементы были признаны устаревшими. Некоторые функции являются устаревшими, то есть они будут удалены в будущих версиях. Разработчикам следует начать обновлять свои приложения, чтобы не использовать эти устаревшие функции.
Кроме того, в MySQL 9.1 уже удалены некоторые функции, которые могут повлиять на старые приложения. Поэтому администраторам баз данных следует пересмотреть использование функций MySQL 9.0 и внести соответствующие изменения для обеспечения совместимости перед переходом на версию 9.1.
Для получения более подробной информации ознакомьтесь с примечаниями к выпуску или здесь, чтобы узнать обо всех новинках этого выпуска.