Написать пост

Представлен первый релиз-кандидат MySQL 8.0

Аватар Вячеслав Шарунов

Доступен первый релиз-кандидат популярной СУБД MySQL 8.0. Рассказываем о её главных новшествах.

MySQL перескакивает несколько версий в своей нумерации (на данный момент стабильная версия имеет номер 5.7). Это связано с тем, что версия с нумерацией 6.0 отменена, а 7.0 зарезервирована для кластерной версии продукта.

Функции, включённые в MySQL 8.0

  • Поддержка Unicode 9.0 из коробки;
  • Оконные функции и рекурсивный синтаксис SQL для запросов, которые ранее были невозможны или трудны для написания;
  • Расширенная нативная поддержка данных из JSON-файлов и функциональности документоориентированных систем.

Поддержка Unicode 9.0

MySQL 8.0 больше не поддерживает latin1 в качестве кодировки по умолчанию. Рекомендуемым набором символов в новой версии является utf8mb4, который быстрее устаревшего utf8mb3 и поддерживает более гибкие правила сравнения символов. utf8mb4 также чувствителен к регистру.

Оконные функции

Многие другие реализации языка SQL поддерживают оконные функции — способ выполнить вычисления одновременно по нескольким строкам, сохраняя при этом доступ к каждой из строк отдельно. Похожее можно было сделать в MySQL и без оконных функций, однако более медленным и громоздким способом. MySQL 8.0 добавляет оконные функции c использованием ключевого слова OVER, которые по своей сущности похожи на уже используемые в PostgreSQL.

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

JSON-файлы и документоориентированные базы

В версии 5.7 уже появилась поддержка JSON-файлов, что делает MySQL конкурентноспособной с базами NoSQL, использующими JSON по умолчанию. Версия 8.0 расширяет поддержку JSON, добавляя новые функции агрегации, позволяющие объединить данные структурированных баз MySQL и документоориентированных NoSQL в один запрос.

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

Другие ключевые функции MySQL 8.0

  • Дополнительные параметры обработки заблокированных строк при помощи ключевых слов SKIP LOCKED и NOWAIT. SKIP LOCKED позволяет пропускать заблокированные строки во время операций, NOWAIT выдаст ошибку доступа при встрече заблокированной строки;
  • MySQL автоматически масштабируется до объёма доступной памяти, чтобы наилучшим образом использовать виртуальные машины;
  • Индексы можно вручную исключить из оптимизатора запросов при помощи функции «невидимый индекс». Индексы, отмеченные как невидимые, постоянно обновляются с изменениями в таблицах, но не используются для оптимизации запросов.

Ожидаемая дата релиза

MySQL до сих пор не анонсировала точную дату выхода общедоступной версии 8.0, но поскольку политика компании придерживается правила «новая общедоступная версия каждые 18–24 месяца», то стоит ожидать релиз в октябре 2017 года. Напомним, что версия 5.7 стала доступна в октябре 2015 года.

Установка

Скачать и установить новую версию для разработчиков можно с официальной страницы продукта.

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий2К показов