MySQL 8: обновленные CTE и невидимые индексы

MySQL в очередной раз готова покорять мир своими нововведениями. Версия 5.7, вышедшая в свет чуть больше года, хорошо взаимодействует с JSON-данными, отличается повышенной безопасностью и высокой производительностью. Однако некоторые вещи нужно исправить, что обещают сделать в новом выпуске сервера.
Где 6 и 7 версии?
Несколько лет назад, перед тем, как компания Sun Microsystems купила MySQL АВ, планировался выпуск 6 версии. Смена руководства не одобрила план по скороспешной разработке 6 версии. На протяжении многих лет используется кластер MySQL 7 версии. Разработчики считают, что внесли достаточно изменений, чтобы повысить цифру.
Словарь данных
Наверняка вы знакомы с файлами типа .frm, .myi, .myd и подобными им? Эти файлы содержат некоторые метаданные о схемах баз данных. Двадцать лет назад это было неплохое решение, но InnoDB доказывает, что механизм хранения может вместить все, что необходимо для безопасности метаданных.
Вносить изменения в таблицы теперь будет проще. Созданный ранее словарь данных будет соединен. Перед началом транзакции необходимо будет подтвердить ее в Alter Table. Есть возможность протестировать изменения перед запуском.
Что еще изменится
Общие табличные выражения (СТЕ), права пользователя, невидимые индексы. Последнее является одним из ключевых нововведений. Индекс будет поддерживаться и обновляться параллельно с изменениями данных, но при выполнении запроса он не будет использоваться. Это касается и тех случаев, когда в запросе имеется прямое указание на его использование при помощи Force Index.
В новой версии будут доступны такие функции как групповая репликация и хранение документов из основных версий сервера. Можно будет подключать модули, что позволит сразу добавлять новые функциональные особенности, а не ждать цикл выпуска сервера.
Перевод статьи Дейва Стокеса (Dave Stoke)
Хотите получить навыки работы с базами данных? Записывайтесь на курс “Администрирование баз данных на Linux“!