У меня есть база данных "алгебра" с таблицей "вопросы" с 1 033 990 строк. Записи имеют атрибут "решено", то есть INT. У меня простой запрос
select count(*) from questions where solved = 0
У меня есть два сервера с аналогичными процессорами. На обоих серверах таблицы одинаковы. (база данных является точной копией продукции). Они на SSD. На одном сервере установлена Ubuntu 14.04 с MySQL 5.5.49, а на другом сервере - Ubuntu 16.04 с MySQL 5.7.12.
Проблема в том, что этот запрос занимает всего 0,009 с на MySQL 5.5, но занимает 0,304 с на MySQL 5.7. Что в 34 раза МЕДЛЕННО !!!
Планы запроса примерно одинаковы:
Медленный сервер:
id      select_type     table   partitions      type    possible_keys   key     key_len ref     rows    filtered        Extra
1       SIMPLE  questions       NULL    index   NULL    by_topic_solved 97      NULL    1033990 10.00   Using where; Using index
Быстрый сервер:
id  select_type table   type    possible_keys   key key_len ref rows    Extra
1   SIMPLE  questions   index   NULL    by_topic_solved 97  NULL    1033989 Using where; Using index
Почему это может быть дело сбивает меня с толку. Я видел другие, более сложные проблемы производительности с этой новой настройкой 5.7, но это самая простая проблема, которую нужно решать с точки зрения основного запроса.
Я пытаюсь найти объяснение этому или с чего начать. my.cnf был примерно одинаков между двумя. Любые предложения будут с благодарностью приняты.
