Дмитрий Ленев из Oracle кратко рассказал о новых возможностях MySQL 8.0. Вот, что запомнилось.
Версия MySQL 5.7 - стабильная ветка (на момент написания заметки 8.0 тоже стала GA) рекомендуемая для продакшена. В ветке 5.7 нет активной разработки, только исправления ошибок.
На MySQL Labs можно скачать dev-сборки будущих релизов. В них имеется новый функционал, но меньше внимания к тестированию.
Rapid плагины - часть функционала сервера, вынесенная в отдельные модули (или плагины), которые можно подключать к dev-релизам.
На текущий момент есть два плагина, доступные для 5.7:
Словарь данных.
До версии 8.0 мета-данные об объектах сервера (таблицы, процедуры и т.д.) хранились в разных местах. Определение таблиц в frm-файлах (файловая система), часть данных в myisam-таблицах (информация о пользователях, например), часть внутри InnoDb. Это приводило к ряду сложностей:
В новом словаре все мета-данные хранятся в едином хранилище - InnoDB.
До версии 8.0 при удалении, например, 4-х таблиц, могло произойти так, что только часть из них удалится, а часть останется.
Аналогичная ситуация могла возникнуть при падении сервера во время DDL операций. В 8.0 это исправлено.
Работа с иерархическими данными.
Появились оконные функции и рекурсивные выражения.
Теперь построить иерархию категорий в условном интернет-магазине будет гораздо проще и удобнее.
До 8.0 синтаксис создания индексов поддерживал создания убывающих индексов, но на самом деле создавались обычные возрастающие индексы.
Запросы с сортировкой по двум полям в разном порядке теперь полноценно могут использовать индекс.
Индексы теперь можно "выключить" или сделать невидимым. Такой индекс продолжает реагировать на все DML запросы, но планировщик его не использует.
Можно использовать, например, для плавного удаления индекса. Делаем индекс невидимым, смотрим не просело ли наше приложение по скорости.
Если нет - делаем DROP для индекса, если просело - моментально "включаем" индекс и продолжаем работу.
Кодировка по умолчанию теперь utf8mb4 (Ура!), emoji поддерживаются из коробки.
Версия Unicode обновлена до 9.0
Роли.
Роли - именованные коллекции привилегий, которые могут наследоваться.
Упрощают администрирование и улучшают безопасность сервера.
Много полезных и интересных возможностей!