Оценка производительности MySQL и MariaDB. Выпуск MariaDB 10.0.1
Разработчики проекта MariaDB, в рамках которого развивается СУБД продолжающая развитие кодовой базы MySQL, опубликовали результаты тестирования производительности недавно выпущенного стабильного релиза MySQL 5.6 и второй тестовой версии MariaDB 10.0, сочетающей возможности бэкпортированные из MySQL 5.6 с собственными оригинальными разработками. В тестировании также приняли участие прошлые ветки проектов MySQL 5.5.29 и MariaDB 5.5.28a. Для OLTP-тестирования использовался пакет sysbench 0.5 в конфигурации с 8 таблицами и размером данных в 10 Гб.В первом тесте MySQL 5.6 продемонстрировал заметное отставание производительности при более чем 16 одновременных запросах, при этом при нагрузке с 8 до 16 одновременных запросов MySQL 5.6 лидировал. Небольшое отставание от MySQL 5.5 и MariaDB 5.5 при большом числе одновременных запросов наблюдается и в MariaDB 10, но оно не столь существенное, как в случае с MySQL:
При оценке времени выполнения запроса все СУБД показали достаточно близкие результаты при числе нитей до 64, при большем числе одновременных запросов наблюдается небольшое преимущество MariaDB 10 и MySQL 5.6 при запросах только на чтение и достаточно существенное расхождение при наличии активности на запись:
Дополнительно можно отметить готовность для тестирования экспериментального выпуска MariaDB 10.0.1. По сравнению с первой тестовой версией MariaDB 10.0.0 в новом выпуске появилась поддержка следующих оригинальных улучшений, отсутствующих в MySQL:
- Новое хранилище Cassandra Storage Engine (SE), добавляющее в MariaDB и MySQL поддержку средств для доступа к данным, хранимым в распределённой БД Apache Cassandra. Используя Cassandra SE разработчики получают возможность обращаться к данным и добавлять данные в БД Cassandra при помощи обычных SQL-запросов. При этом используемая в Cassandra модель хранения данных в виде семейства столбцов (ColumnFamily) отображается в форме свойственных для MariaDB/MySQL таблиц, для которых можно применять стандартные SQL-директивы SELECT, INSERT, DELETE и UPDATE, а также выполнять операции объединения (JOIN) с другими таблицами.
- Универсальная система накопления статистики об активности и наполнении таблиц для использования оптимизатором запросов, реализованная без привязки к конкретным движкам хранения;
- Улучшенная реализация динамических столбцов, позволяющих получить различный набор "виртуальных столбцов" для каждой строки в таблице. Добавлена поддержка запросов в формате JSON и возможность интеграции с БД Cassandra;
- Поддержка анализа потребления памяти в привязке к отдельной нити;
- Значительное ускорение работы конструкций ALTER TABLE для хранилищ Aria и MyISAM при наличии проверки уникальных ключей;
- Переработанная поддержка автоматического назначения и обновления времени для timestamp и datetime.
Кроме того, разработчики отметили ряд улучшений, ранее доступных в прошлых ветках MariaDB и реализованных компанией Oracle в MySQL 5.6 (данные возможности созданы с нуля, а не портированы из MariaDB): улучшение оптимизатора запросов, поддержка микросекунд, возможность использования аннотаций и групповых коммитов в бинарном логе, увеличения точности геометрических типов, поддержка пула нитей.
Полный текст статьи читайте на OpenNet