[Документация Yandex Cloud](../../index.md) > [Yandex Managed Service for MySQL®](../index.md) > [Концепции](index.md) > Сравнение MySQL® версий 5.7 и 8.0

# Сравнение MySQL® версий 5.7 и 8.0

MySQL® 8.0 представляет существенное обновление по сравнению с MySQL® 5.7, выпущенным почти десять лет назад. Данная версия включает значительные улучшения в архитектуре СУБД и функциональности.

## Транзакционный словарь данных {#data-dictionary}

MySQL® 8.0 заменил систему хранения метаданных в отдельных файлах `.frm` на единый транзакционный словарь данных. 

Преимущества нового подхода:

* Устранение проблем рассинхронизации метаданных при сбоях.
* Отсутствие блокировок при выполнении DDL-операций.
* Оптимизированное изменение структуры таблиц без длительных блокировок.
* Повышенная надежность резервного копирования и восстановления структуры БД.

## Безопасность {#security}

MySQL® 8.0 внедряет усовершенствованные механизмы безопасности.

Основные улучшения:

* Использование `caching_sha2_password` вместо `mysql_native_password` в качестве механизма по умолчанию.
* Улучшенная система хранения паролей.
* Расширенная защита от современных векторов атак.
* Обратная совместимость с предыдущими механизмами аутентификации.

## SQL-функциональность {#sql-features}

* MySQL® 8.0 предоставляет встроенную поддержку оконных функций для упрощения сложных вычислений:

   ```sql
   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), что позволяет создавать более структурированные запросы:

   ```sql
   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 {#json}

MySQL® 8.0 предоставляет расширенную функциональность для работы с JSON-данными:

* Создание индексов:

   ```sql
   ALTER TABLE users
   ADD INDEX idx_profile_age ((CAST(profile->>'$.age' AS UNSIGNED)));
   ```

* Оптимизированный синтаксис для работы с JSON:

   ```sql
   -- Извлечение значений
   SELECT 
       id,
       profile->>'$.name' as name,
       profile->>'$.contacts.email' as email
   FROM users;
   ```

## Дополнительные возможности {#additional-features}

Новые функциональные возможности MySQL® 8.0:

* Невидимые индексы для тестирования индексных структур в производственной среде.
* `EXPLAIN ANALYZE` для анализа фактических планов выполнения запросов.
* Оптимизированная система работы с метаданными для снижения количества блокировок.

## Производительность {#performance}

Результаты тестирования производительности версий MySQL® 8.0:

* Однохостовые конфигурации демонстрируют более высокую производительность на MySQL® 5.7.
* Многохостовые конфигурации показывают повышенную стабильность на MySQL® 8.0.

Выбор версии определяется конкретными требованиями к производительности.

## Переход на MySQL® 8.0 {#upgrade}

С октября 2023 года прекращена официальная поддержка MySQL® 5.7. Преимущества перехода на MySQL® 8.0:

* Доступ к обновленному функционалу и улучшенным механизмам безопасности.
* Инструменты Yandex Cloud для процесса миграции.
* Долгосрочная поддержка версии.

Подробная инструкция по миграции доступна в разделе [Обновление версии MySQL®](../operations/cluster-version-update.md).