MySQL 5.7.10 простой запрос медленнее, чем 5.6.35 - PullRequest
0 голосов
/ 01 ноября 2018

Я скопировал базу данных с 5.6.35 на 5.7.10, обе версии MYSQL Community Server, и по какой-то причине мой запрос выполняется очень медленно. Это база данных InnoDB.

5.6 - мой сервер разработки.

  • Windows Server Standard SP2
  • 32BIT
  • 4 ГБ RAM

5.7 - мой рабочий сервер

  • Windows Server 2008 R2 Enterprise SP1
  • 64BIT
  • 24 ГБ RAM

Это не сложный запрос в любом случае.

SELECT t.*
,(SELECT `name` FROM users u1 WHERE u1.id = t.addedby) AS addebyname
,(SELECT `name` FROM users u2 WHERE u2.id = t.modifiedby) AS modifiedbyname
,(SELECT `title` FROM tasks_groups tg WHERE tg.id = t.groupid) AS grouptitle
,(
CASE
    WHEN t.active=0 THEN CONCAT(t.title,' (Inactive)')
    ELSE t.title
    END
) AS combo
,(SELECT
    IFNULL(SUM(ts.worked),0)
    FROM timesheet ts
    WHERE ts.taskid=t.id
) AS totaltaskhours
FROM tasks t
  • 5,6 для возврата 58 записей требуется 0,468 с
  • 7,5 занимает 89,922 с, чтобы вернуть 58 записей

Если я удаляю (SELECT IFNULL ...) часть запроса, он выполняется очень быстро, поэтому не уверен, почему это замедляет запрос на 5.7. У меня есть все индексы, установленные между различными таблицами. В расписании всего 238837 строк, поэтому он не такой большой.

enter image description here

Немного потеряна причина этого ...

Вот ОБЪЯСНЕНИЕ результатов, не совсем понятно, что все это значит ..

5,6 enter image description here

5,7 enter image description here

1 Ответ

0 голосов
/ 01 ноября 2018

Кто бы ни установил MySQL Server, он не удосужился установить innodb_buffer_pool_size в INI-файле на хороший размер. Было действительно мало 8M на сервере 24 ГБ, увеличил размер и теперь все работает, как ожидалось. Спасибо за все предложения

...