Релиз MySQL 9.2.0
По-видимому, Oracle решила выкатить свеженькую вариацию своего флагманского продукта MySQL – теперь 9.2.0. Если честно, использовать обновление реально можно практически на всех более-менее известных операционках, начиная с Linux и заканчивая Windows. Это своего рода версия MySQL Community Server, которую уже возможно пристроить для чего угодно: хоть для macOS, хоть для FreeBSD.
Как можно сказать, прошлогодние новшества подтолкнули MySQL 9.2 в список, который ориентируется на вдохновляющие релизы. По сути, именно они формируют основу для версии MySQL релиза 9.3, а за ним, собственно, пойдут и другие обновления. Похоже, что основная задумка здесь – дать пользователям максимально нишевые фишки, но при этом чтобы всё гладко шло со старыми штуками. А вообще, если глядеть издалека, поддерживаться такие сборки будут три года.
Тем, кто, может быть, ценит стабильность и хочет, чтобы всё было супер-долго служебно, подходят неподвижные, так называемые LTS-релизы. Эти сборки обычно цепляются к рабочим проектам и эксплуатируются там не один год. Через некоторое время, когда подрастет MySQL 9.3, на его основе будет сварганен MySQL 10.0 – с долгим, как вам скорее всего хочется, сроком жизни.
Что нового в MySQL 9.2
- Компонент MLE (Multilingual Engine Component)
С одной стороны, это реальная находка – похожая на инструмент для работы с кучей разных языков программирования. Как минимум, сейчас можно запускать библиотеки и коды на чём-то, что точно не SQL. Другими словами, MySQL теперь поддерживает что-то вроде JavaScript. Можно сказать, что прямо через базу возможно накрутить сложные математические штуки с помощью JS. А ещё туда добавили команды попроще вроде «CREATE LIBRARY» для управления библиотеками, и сделали для проверки новый инструмент «SHOW CREATE LIBRARY». - Допиленный API для JavaScript
Особо разбирать не надо, но теперь интеграция чего-то вроде ваших JS-функций в MySQL стала ощутимо симпатичнее. Ну то есть, можно быстро посмотреть инфу о функциях через «getFunction()» или влезть в детали каких-то специальных переменных вашей сессии. Приятно, что и типичные SQL-штуки, как например, «rand()» или «sleep()», могут быть обработаны скриптовыми фишками на JS. - Транзакции теперь тоже на JavaScript
Для тех, кто любит держать SQL-команды под контролем, сделали возможность управления транзакциями через привычный интерфейс JavaScript – с командами «START TRANSACTION», «COMMIT», «ROLLBACK» и даже «SET AUTOCOMMIT». - Поддержка ENUM и SET для работы с JS
Теперь можно облегчённо выдохнуть, потому что данные этих типов в MySQL перенесли в удобоваримый вид, чтобы крутить их JavaScript-методами. - CREATE SPATIAL REFERENCE SYSTEM
Специфическая штука для тех, кто любит колдовать с пространственными координатами, чтобы управлять, добавлять и обновлять их. Сразу стоит отметить, правда, нужна определённая супер-пользовательская роль, чтобы получить к этому доступ. Для удобства прикрутили такие команды, как «CREATE OR REPLACE SPATIAL REFERENCE SYSTEM». - JSON-формат у EXPLAIN
Практически, «EXPLAIN FORMAT=JSON» обогатился новыми настройками для контроля работы с версиями формата JSON. И всё это собирается через explain_json_format_version. - Чуть доработали бинарные логи и всякое мелкое
С одной стороны, переработали «FLUSH PRIVILEGES» и что-то подобное для «mysqladmin flush-privileges», а с другой – улучшили управление версиями в бинарных логах, включая BINLOG. И вроде как становится всё удобнее. - Новая порция фиксов безопасности
Говорят, по сути, закрыли более тридцати дыр, включая три совсем жутких. В особенности это относится к штукам вроде Kerberos или Curl. Казалось бы, мелочь, но InnoDB и Thread Pooling теперь работают куда приятнее. А работа с DDL или репликация стала более надёжной и прогнозируемой.
Итак, можно с уверенностью сказать, что MySQL 9.2 это не просто обновление – это шаг в сторону чего-то невероятно гибкого и, честно, вполне подходящего для тех, кто хочет оставаться на гребне новых технологий.