为什么不能查询#2使用相同的(car_trims.horsepower_peak)索引来优化行作为的排序查询#1?在只有两个查询之间的区别是增加的JOIN在查询#2。
PK: (car_trims.id), 索引(car_trims.horsepower_peak)
PK: (car_makes.id)
查询#1
SELECT car_trims.*
FROM car_trims
GROUP BY car_trims.id
ORDER BY car_trims.horsepower_peak DESC
LIMIT 0, 200
Run Code Online (Sandbox Code Playgroud)
执行时间处理时间: .0026 seconds
查询#2
SELECT car_trims.*
FROM car_trims
STRAIGHT_JOIN car_makes ON car_makes.id = car_trims.make_id
GROUP BY car_trims.id
ORDER BY car_trims.horsepower_peak DESC
LIMIT 0, 200
Run Code Online (Sandbox Code Playgroud)
执行时间处理时间: .2533 seconds
更新:
我一直在继续这方面的工作,我相信该指数没有被利用在查询#2,由于混合的GROUP BY和ORDER BY。根据 MySQL …