次のようなクエリがあります。
SELECT
`Games`.`id`, `Games`.`name`, `Games`.`url`
FROM
`Games`
LEFT JOIN
`GamesRuns`
ON
Games.id = GamesRuns.game_id
WHERE
(GamesRuns.date >= '2012-07-17 13:14:08') AND (Games.score = 0) AND (Games.active = 1) AND (Games.display = 1)
GROUP BY
`Games`.`id`
ORDER BY
SUM(GamesRuns.count) DESC
LIMIT 5;
どの列にインデックスを配置する必要があるかを知りたいです。マルチインデックスとして GamesRuns.date と Games.score + Games.active + Games.display にあるはずだと思います。また、GamesRuns.count にインデックスを付けるのは SUM 関数内にあるため無意味だと思いますが、それ以外の場合 (SUM 関数を使用しない場合) にはインデックスも必要です。そうですか?EXPLAIN を使用すると、possible_key と key も PRIMARY であることが示されますが、PRIMARY は Games.id にすぎません。ご回答ありがとうございます。