В апреле 2016 года прошла ежегодная конференция Percona Live Data Performance, на которой было представлено много новой информации, касающейся не только сообщества MySQL. Работники Oracle поделились своими планами для оптимизации mysql.nnИтак, уже новая версия MySQL будет иметь другую схему в нумерации релизов. Новый основный релиз получит название MySQL 8, а потом каждый очередной будет менять номер на 9, 10 и т. д. Этот подход позволит объединить MySQL с MySQL Cluster, а также каждый основной релиз больше не будет рассматриваться как корректировочный.n
Rapid plugins
Пользователи MySQL ждут от разработчиков гибкой работы. Они хотят чаще получить новые релизы, даже в сыром виде, чтобы быстрее произвести тестирование. Если и будут какие-то недоделки, то пользователи могут её просто отключить.nnЭто решение получило название rapid plugins, которое трудно перевести на русский язык. Смысл заключается в том, чтобы новая функциональность предлагалась в виде модулей. Они будут выпускаться для каждой версии отдельно, таким образом можно будет избежать комбинирования старых и новых возможностей. Пользователь релиза сможет при желании отключить новые функции.nnЭту возможность разработчики уже используют на практике. Так, MySQL 5.7.12 дополнительно имеет модуль X Plugin, который просто впечатляет новыми возможностями. Оптимизация базы данных осуществляется за счёт обновлённого протокола связи с веб-сервером, который может производить асинхронные запросы. А также применяется новая утилита для эффективной работы с веб-сервером и новый NoSQL API, который делает акцент на JSON, CRUD, а также document store.nnЭту возможность стоит понимать как прототип для дальнейшего тестирования. Создатели обращают внимание пользователей на то, что главный упор не был сделан на производительность, поэтому улучшение производительности mysql следует ожидать в следующих релизах.n
X protocol/DevAPI/Shell
Разработчики MySQL 8 уделяют особое внимание новому протоколу и API. Они уверены, что с его помощью можно будет повысить производительность баз данных, расширить API и создать привязки к разным языкам. Х протокол будет применяться для шардинга и репликации. MySQL Shell будет объединять полностью все фронтенды и утилиты для администрирования.n
Оптимизатор запросов
В этой области ожидаются самые большие изменения:n
- гистограммы;
- функции окон или window functions;
- common table expressions, изменения коснуться даже рекурсивных;
- использование кэша плана реализации для prepared statements.
Также изменения коснутся и других функций SQL, планируется оптимизация функциональности и индексов JSON.n
Group replication
Group Replication во многом напоминает Galera Cluster. В виде плагина можно было ознакомиться с предварительными релизами. Первый релиз должен выйти примерно с MySQL 8. Он будет отличаться удобностью, устойчивостью и скоростью от предварительных версий.n
Появление InnoDB
Все системные таблицы будут функционировать на InnoDB, что позволит проститься с MyISAM. Хотя остаётся возможность его применения в виде опций.n
Словарь данных
MySQL имеет ряд недостатков, среди которых стоит выделить отсутствие транзакционного словаря. В результате нет возможности применять транзакционные DDL, необходимо производить запросы к INFORMATION_SCHEMA, которые стоят недёшево, часто встречаются проблемы с расширяемостью формата метаданных, блокировками таблиц и с физическими бэкапами.nnНо уже в версии MySQL 8 некоторые недостатки будут ликвидированы. Это касается устранения файлов .frm, а также хранения метаданных таблиц в общем словаре. Таким образом, все проблемы, связанные с доступом через INFORMATION_SCHEMA, уже забудутся. Появляется возможность хранения расширенных атрибутов таблиц, что улучшает функциональность. DDL теперь будут уже атомарными, что устраняет проблемы с репликацией или трудностей при падении сервера.nnЭто только некоторые улучшения, которых стоит ожидать в будущем. Но разработчики намекают и на лучшую поддержку для облачных платформ, работают над новым движком хранения.n
Если Вам нужна улучшения производительности работы базы данных уже сейчас, мы предлагаем услуги по оптимизации работы баз данных, обращайтесь в раздел Контакты