Сравнение MySQL® версий 5.7 и 8.0
MySQL® 8.0 представляет существенное обновление по сравнению с MySQL® 5.7, выпущенным почти десять лет назад. Данная версия включает значительные улучшения в архитектуре СУБД и функциональности.
Транзакционный словарь данных
MySQL® 8.0 заменил систему хранения метаданных в отдельных файлах .frm
на единый транзакционный словарь данных.
Преимущества нового подхода:
- Устранение проблем рассинхронизации метаданных при сбоях.
- Отсутствие блокировок при выполнении DDL-операций.
- Оптимизированное изменение структуры таблиц без длительных блокировок.
- Повышенная надежность резервного копирования и восстановления структуры БД.
Безопасность
MySQL® 8.0 внедряет усовершенствованные механизмы безопасности.
Основные улучшения:
- Использование
caching_sha2_password
вместоmysql_native_password
в качестве механизма по умолчанию. - Улучшенная система хранения паролей.
- Расширенная защита от современных векторов атак.
- Обратная совместимость с предыдущими механизмами аутентификации.
SQL-функциональность
-
MySQL® 8.0 предоставляет встроенную поддержку оконных функций для упрощения сложных вычислений:
SELECT sale_date, product_id, sales_amount, ROUND(AVG(sales_amount) OVER ( ORDER BY sale_date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW ), 2) as moving_average_3days FROM daily_sales;
-
MySQL® 8.0 внедряет Common Table Expressions (CTE), что позволяет создавать более структурированные запросы:
WITH customer_totals AS ( SELECT customer_id, region, SUM(order_amount) as total_spent FROM orders GROUP BY customer_id, region ) SELECT * FROM customer_totals;
Работа с JSON
MySQL® 8.0 предоставляет расширенную функциональность для работы с JSON-данными:
-
Создание индексов:
ALTER TABLE users ADD INDEX idx_profile_age ((CAST(profile->>'$.age' AS UNSIGNED)));
-
Оптимизированный синтаксис для работы с JSON:
-- Извлечение значений SELECT id, profile->>'$.name' as name, profile->>'$.contacts.email' as email FROM users;
Дополнительные возможности
Новые функциональные возможности MySQL® 8.0:
- Невидимые индексы для тестирования индексных структур в производственной среде.
EXPLAIN ANALYZE
для анализа фактических планов выполнения запросов.- Оптимизированная система работы с метаданными для снижения количества блокировок.
Производительность
Результаты тестирования производительности версий MySQL® 8.0:
- Однохостовые конфигурации демонстрируют более высокую производительность на MySQL® 5.7.
- Многохостовые конфигурации показывают повышенную стабильность на MySQL® 8.0.
Выбор версии определяется конкретными требованиями к производительности.
Переход на MySQL® 8.0
С октября 2023 года прекращена официальная поддержка MySQL® 5.7. Преимущества перехода на MySQL® 8.0:
- Доступ к обновленному функционалу и улучшенным механизмам безопасности.
- Инструменты Yandex Cloud для процесса миграции.
- Долгосрочная поддержка версии.
Подробная инструкция по миграции доступна в разделе Обновление версии MySQL®.