У меня странная разница в производительности между серверами 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
Я пробовал с настройками по умолчанию на обоих серверах ... MySQL всегда давал лучшие результаты.
Я также пытался настроить некоторые настройки кеша на MariaDB ... но MySQL с настройками по умолчанию остается лучше
В этом запросе я видел, что используемые индексы разные
Тип индекса MySQL: "index_merge" <> тип индекса MariaDB "диапазон", и только ОДИН индекс используется в MariaDB
Я уверен, что это просто вопрос отсутствия настройки ... но я не знаю, где искать.
Я ищу советы или идеи для исследования. Может ли кто-нибудь мне помочь?
С уважением
Тибо
Наконец-то я обнаружил, что моя проблема связана с различием в методах оптимизации. Это описано в https://mariadb.com/kb/en/library/fair-choice-between-range-and-index_merge-optimizations/
В проблемных запросах можно использовать 2 индекса, но только один был выбран механизмом оптимизации
. Сначала я улучшил производительность, удалив используемый индекс (чтобы принудительно использовать другой индекс). Затем я создал новый индекс с комбинацией необходимых полей