Назад | Перейти на главную страницу

Разница в производительности MySQL и MariaDB

У меня странная разница в производительности между серверами MariaDB и MySQL

У меня 2 сервера:

1 ° На первом я использую стандартный пакет MariaDB (10.1.26-0 + deb9u1), распространяемый с Debian 9.1 2 ° На втором я запускаю стандартный пакет MySQL (mysql-community-server-5.6. 26-2.el7.x86_64) распространяется с CentOS 7.1.1503

У обоих одинаковое оборудование и одинаковая рабочая нагрузка (на самом деле ничего). На обоих я импортировал базу данных объемом 1,5 ГБ с третьего сервера (по дампу таблицы используют InnoDB).

По основным запросам производительность идентична. К сожалению, в более сложных запросах (с несколькими объединениями, использующими правильно проиндексированные таблицы) у меня есть огромная разница.

Например, по запросу: MariaDB 1,293 секунды <> 0,389 секунды MySQL

На MariaDB

Query_time: 1.293323 Lock_time: 0.001307 Rows_sent: 1 Rows_examined: 1063076

Я пробовал использовать настройки по умолчанию на обоих серверах ... MySQL всегда давал лучшие результаты.

Я также пытался настроить некоторые настройки кеша на MariaDB ... но MySQL с настройками по умолчанию остается лучше

В этом запросе я видел, что используемые индексы отличаются

Тип индекса MySQL: "index_merge" <> тип индекса MariaDB "диапазон" и только ОДИН индекс используется в MariaDB

Я уверен, что это просто вопрос отсутствующей настройки ... но я не знаю, где искать.

Я ищу советы или идеи для исследования. Кто-нибудь может мне помочь?

Наилучшие пожелания

Тибо

Я наконец обнаружил, что моя проблема связана с различием в методе оптимизации. Это описано в https://mariadb.com/kb/en/library/fair-choice-between-range-and-index_merge-optimizations/

При проблемных запросах можно использовать 2 индекса, но механизм оптимизации выбрал только один.

Сначала я улучшил производительность, удалив используемый индекс (чтобы принудительно использовать другой индекс). Затем я создал новый индекс с комбинацией необходимых полей