Есть сложный составной запрос вида:
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 запроса такой:
на 2ом сервере - MySQL Community Server (GPL) (5.6.31-log)
explain:
Почему на втором сервере не используется индекс Account_ID а идет "Using index condition; Using where; Using MRR"
и кол-во строк в первом случае 4, а во втором 6 млн. из за этого этот запрос на втором сервере очень сильно тормозит...