DieZeeL
@DieZeeL
PHP Developer, DevOps

Вопрос по поводу использования индексов в разных версиях MySQL?

Есть сложный составной запрос вида:
SELECT `c`.*, `r`.*, `ci`.*, `i`.*, `u`.*, `ca`.`Category_Weight` AS Category_Parent_Weight, `ca`.`Category_Alias` AS Category_Parent_Alias
FROM (`ct_items` i)
LEFT JOIN `ct_categories` c ON `i`.`Category_ID` = `c`.`Category_ID`
LEFT JOIN `ct_categories` ca ON `c`.`Category_Group_Id` = `ca`.`Category_ID`
LEFT JOIN `ct_regions` r ON `i`.`Region_ID` = `r`.`Region_ID`
LEFT JOIN `ct_cities` ci ON `i`.`City_ID` = `ci`.`City_ID`
LEFT JOIN `ct_users` u ON `i`.`User_ID` = `u`.`id`
WHERE `Item_status` =  'active'
AND `User_ID` =  '1'
AND `Item_ID` <> '5869135'
LIMIT 4

БД на серверах совершенно одинакова, таблица ct_items - 6 млн записей, движок MyISAM.
На 1ом сервере установлена Percona Server (GPL), Release 11, Revision f60191c (5.7.17-11-log)
Сам запрос выполняется очень быстро, Explain запроса такой:
a26ea7fe06224188a57aff64803c86f4.png
на 2ом сервере - MySQL Community Server (GPL) (5.6.31-log)
explain:
e2d2717d66cf4c0eb759f5d0f23dbffe.png
Почему на втором сервере не используется индекс Account_ID а идет "Using index condition; Using where; Using MRR"
и кол-во строк в первом случае 4, а во втором 6 млн. из за этого этот запрос на втором сервере очень сильно тормозит...
  • Вопрос задан
  • 225 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы