我有这样的查询:MySQL的 - 在其列使用索引
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作为multiindex。我认为把一个索引放在GamesRuns.count中是毫无意义的,因为它在SUM函数中,否则(没有SUM函数)应该有一个索引。这样对吗?因为当我使用EXPLAIN时,它向我展示了possible_key,而且键是PRIMARY,但PRIMARY只是Games.id。谢谢您的回答。
帮不了你,除非你发布一些示例数据,你的表结构的其余部分。此外,您应该运行EXPLAIN SELECT [...]以了解更多信息。 – 2012-07-24 14:15:25
开始阅读 - http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html – ManseUK 2012-07-24 14:15:48