MySQL 5.7, вторая рабочая версия
Корпорация Oracle объявила о выпуске второй рабочей версии (Development Milestone Release, DMR) MySQL 5.7. В новой версии повышена производительность, надежность, масштабируемость и управляемость популярной базы данных с открытым исходным кодом, что позволяет разработчикам и администраторам СУБД создавать современные Web-, облачные и встраиваемые приложения, способные обрабатывать постоянно растущие объемы данных.
Версия MySQL Community Edition 5.7.2 DMR, доступная для загрузки с сайта MySQL Developer Zone, предлагает ускоренное создание новых соединений, повышенную пропускную способность для транзакций, улучшенную скорость репликации, расширенные средства диагностики использования внутренней памяти и другие усовершенствования, обеспечивая более высокую производительность и управляемость.
В дополнение к новой версии DMR Oracle открывает на http://labs.mysql.com доступ к дополнительным функциональным возможностям, находящимся в стадии разработки, для тестирования и обсуждения широким сообществом пользователей. В частности, предлагаются две функции: mysqlfabric – набор инструментов для горизонтального масштабирования через шардинг (сегментирование базы данных) и поддержка multi-source-репликации (когда один и тот же сервер базы данных может получать данные с нескольких серверов).
По данным Oracle, MySQL 5.7.2 DMR обеспечивает рекордную производительность в 500 тыс. запросов в секунду (QPS) в тесте Sysbench InnoDB Read-Only POINT SELECT и удваивает предыдущую рекордную производительность в 250 тыс. запросов в секунду в режиме «только чтение» (ReadOnly QPS). Поддерживается также линейное вертикальное масштабирование до 64 процессорных ядер.
Повышена пропускная способность репликации данных на slave-сервере — используется новый режим многопоточной обработки событий репликации на них, при котором непересекающиеся транзакции обрабатываются в отдельных параллельных потоках, даже когда эти транзакции оперируют одной и той же схемой базы данных.
Улучшена операция Online Alter Table — реализована поддержка для неблокирующих переименования индексов и расширения столбцов с типом данных VARCHAR.
Расширены возможности диагностики использования внутренней памяти через общую схему диагностики производительности Performance Schema — добавлены средства, позволяющие отслеживать операции выделения памяти и использования памяти в процессе работы mysqld (ядра MySQL). Впервые в истории MySQL реализованы встроенная поддержка и средства отслеживания использования памяти. Мониторинг использования памяти позволяет получить доступ к ряду показателей, таких как объем внутренней памяти, используемой в текущий момент, количество операций с памятью, минимальное и максимальное значения этих показателей за период времени.
Расширены возможности диагностики использования хранимых программ (Stored Programs) в Performance Schema — добавлена детальная информация о внутренних инструкциях, выполняемых внутри хранимых программ.
Расширены возможности обработки ошибок в хранимых программах (Stored Programs) — команда GET STACKED DIAGNOSTICS может использоваться в качестве нового инструмента для анализа ошибок, необходимого для выявления, исследования и обработки проблем в хранимых программах.
Улучшены средства управления триггерами — реализована поддержка привязки нескольких триггеров к одному типу событий в одной таблице. Возможно определение последовательности срабатывания триггеров с помощью операторов FOLLOWS и PRECEDES.
Добавлена возможность анализа запроса в процессе его выполнения — оператор EXPLAIN для другого соединения позволяет получить планы исполнения для запросов выполняемых в текущий момент.
Расширена поддержка вывода результатов EXPLAIN в формате JSON — позволяет получать более детальную информацию о планах запросов путем добавления данных о совокупной стоимости запроса, стоимости в расчете на таблицу и общем объеме данных, что дает представление о вычислениях и оценках оптимизатора на основе стоимостных характеристик. Можно увидеть не только то, какой план исполнения выбран, но и почему.
MySQL 5.7.2 DMR также предоставляет возможность полусинхронной репликации данных без потерь, обеспечивая фиксацию транзакций в механизме хранения и во внешней памяти на master-сервере только после того, как slave-сервер подтвердил получение данных.