MySQL®: что это за система и какую версию выбрать

Многие компании продолжают работать на MySQL 5.7. Администраторы отладили процессы обслуживания и знают особенности этой версии. Но отсутствие официальных патчей безопасности создаёт уязвимости для кибератак.

MySQL — одна из популярных реляционных систем управления базами данных. Версия 5.7 вышла в октябре 2015 года и почти десять лет активно развивалась. Она до сих пор работает на тысячах серверов, хотя официальная поддержка закончилась в октябре 2023 года.

Версия MySQL 8.0 появилась в 2018 году. В ней добавили новые функции и изменили подход к хранению и обработке данных.

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

Транзакционный словарь данных: единая система вместо разрозненных файлов

Одно из фундаментальных изменений в MySQL 8.0 — переход на единый транзакционный словарь данных для хранения информации о структуре базы. Он заменил множество отдельных файлов, которые использовались в предыдущих версиях.

В MySQL 5.7 метаданные каждой таблицы хранятся в отдельных файлах с расширением .FRM. Это создаёт проблемы при сбоях и усложняет резервное копирование. Восстановление повреждённых файлов требует значительных усилий и времени, что повышает риски для работающих систем.

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

Для работающих систем это означает меньше простоев и более гибкую работу с данными. Также снижаются риски потерять информацию. Разница особенно заметна при работе с большими базами данных — от 500 ГБ. Скорость добавления новых серверов с MySQL 8.0 увеличивается вдвое.

Безопасность: современные стандарты защиты данных

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

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

Бизнес‑аналитика: инструменты для анализа данных

В MySQL 5.7 даже для простых аналитических отчётов приходилось создавать сложные запросы. Подготовка каждого отчёта была технической задачей, для решения которой привлекали опытных специалистов.

MySQL 8.0 предлагает инструменты, которые упрощают аналитику:

  • Оконные функции позволяют анализировать данные в динамике — например, рассчитывать скользящие средние показатели продаж или отслеживать тренды.

  • Common Table Expressions делают сложные запросы понятнее и логичнее. Это упрощает их поддержку и изменение.

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

Технические специалисты заметят, что при использовании MySQL 8.0 уменьшается объём кода и повышается его читаемость. Бизнес получает быстрый доступ к аналитическим данным и снижает затраты на разработку и поддержку.

Работа с JSON: гибкая структура данных

MySQL 8.0 предлагает улучшенные возможности для работы с форматом JSON.

В версии 5.7 функции для JSON были базовыми. В MySQL 8.0 не только упростили синтаксис, но и добавили возможность создавать индексы по значениям внутри JSON‑документов. Это заметно ускоряет поиск по сравнению с MySQL 5.7.

Использование версии MySQL 8.0 позволяет создавать более гибкие приложения, которые адаптируются к меняющимся требованиям. Разработка ускоряется, так как разнородные данные хранятся в одном месте. Кроме того, повышается производительность при обработке гибких структур данных и упрощается интеграция с современными микросервисными архитектурами.

Одно из преимуществ MySQL 8.0 — возможность создавать виртуальные колонки на основе полей JSON и затем индексировать их. Это сочетает гибкость неструктурированных данных со скоростью поиска классической реляционной модели.

Миграция с MySQL 5.7 на MySQL 8.0: планирование и реализация

Официальная поддержка MySQL 5.7 закончилась в октябре 2023 года. Это означает отсутствие официальных обновлений безопасности и постепенное устаревание инфраструктуры для систем, которые её используют.

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

Yandex Managed Service for MySQL® предлагает инструменты для упрощения миграции:

  • резервное копирование с минимальным влиянием на производительность
  • быстрое развёртывание тестовых сред
  • проверка совместимости кода
  • поэтапная миграция с минимальными простоями
  • подробная документация и техническая поддержка

Переход на MySQL 8.0 в облаке — это возможность не только обновить технологический стек, но и пересмотреть архитектуру системы, оптимизировать затраты на инфраструктуру и повысить стабильность приложений.

MySQL®: что это за система и какую версию выбрать
Войдите, чтобы сохранить пост