ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Пятница, 24 января, 2025

Выпущен MySQL 9.2, добавляющий транзакционный API JavaScript

Выпущен MySQL 9.2, добавляющий транзакционный API JavaScript

MySQL 9.2, широко распространённая система управления реляционными базами данных с открытым исходным кодом, содержит несколько новых функций, а также отменяет и удаляет некоторые другие, предоставляя разработчикам и администраторам баз данных расширенные возможности, улучшенную безопасность и удобство использования.

В MySQL 9.2.0 появилась новая привилегия CREATE_SPATIAL_REFERENCE_SYSTEM, которая позволяет пользователям выполнять такие операторы, как «CREATE SPATIAL REFERENCE SYSTEM», «CREATE OR REPLACE SPATIAL REFERENCE SYSTEM» и «DROP SPATIAL REFERENCE SYSTEM».

Однако при выполнении этих команд без этой привилегии (или привилегии SUPER) возникает ошибка. Хотя привилегию SUPER по-прежнему можно использовать для выполнения этих команд, разработчикам следует считать такое использование устаревшим и соответствующим образом планировать переход.

Что касается библиотек JavaScript, то компонент многоязычного движка MySQL (MLE) теперь поддерживает библиотеки JavaScript многократного использования, что упрощает обмен функциями JavaScript и управление ими в разных хранимых программах. Другими словами, теперь вы можете эффективно организовывать свой код в модули многократного использования с помощью операторов CREATE LIBRARY и DROP LIBRARY.

Кроме того, библиотеки JavaScript можно включать в другие хранимые программы с помощью нового предложения USING в «CREATE FUNCTION» или «CREATE PROCEDURE». Более того, в MySQL 9.2.0 есть удобный оператор «SHOW CREATE LIBRARY» для получения кода существующих библиотек, а также две новые таблицы информационной схемы — LIBRARIES и ROUTINE_LIBRARIES — для отслеживания и управления этими ресурсами JavaScript.

Компонент MLE расширяет возможности, позволяя программам JavaScript вызывать хранимые в MySQL функции, процедуры и пользовательские переменные сеанса. Теперь JavaScript может вызывать функции или процедуры MySQL с помощью таких методов, как getFunction() и getProcedure().

Также стоит отметить, что теперь к переменным сеанса можно получить прямой доступ через глобальный объект Session в JavaScript. В версии 9.2 также реализован прямой доступ к встроенным функциям MySQL, таким как rand()sleep()uuid() и isUUID() через глобальный объект Mysql.

Поддержка транзакций — ещё одно интересное дополнение: MySQL 9.2 предоставляет транзакционный API на JavaScript, который соответствует стандартным командам SQL в MySQL, таким как START TRANSACTIONCOMMITROLLBACK и SET AUTOCOMMIT. Также включены точки сохранения. В дополнение к функциям транзакций предоставляется объект SqlError, обеспечивающий надёжную обработку ошибок в программах на JavaScript.

Типы данных ENUM и SET в MySQL теперь распознаются в хранимых процедурах JavaScript, что позволяет легко преобразовывать их друг в друга. Если ваше приложение использует эти типы, теперь вы можете работать с ними напрямую в JavaScript без сложных преобразований.

В MySQL 9.2 в выводе EXPLAIN FORMAT=JSON появляется информация о версии формата, если для системной переменной «explain_json_format_version» установлено значение 2. Это дополнение помогает разработчикам различать разные форматы вывода JSON и соответствующим образом адаптировать инструменты или скрипты. Если версия формата равна 1, в результате EXPLAIN отсутствует информация о версии для обеспечения совместимости со старыми процессами.

Помимо новых дополнений, упомянутых выше, в MySQL 9.2 несколько функций помечены как устаревшие. Оператор FLUSH PRIVILEGES, который долгое время использовался для перезагрузки таблиц разрешений, теперь устарел. Плагин Version Tokens также будет удалён в следующем выпуске.

В то же время в новой версии полностью удалены некоторые элементы, ранее доступные в версии 9.1, поэтому разработчикам следует учитывать их отсутствие при обновлении или репликации. Например, ключевое слово BINLOG больше нельзя использовать без кавычек в хранимых процедурах.

Для получения более подробной информации ознакомьтесь с примечаниями к выпуску или здесь, чтобы узнать обо всех новинках MySQL 9.2.

Exit mobile version