【发布时间】:2016-10-21 17:43:33
【问题描述】:
我有一个游戏排行榜高分数据库,目前包含大约 30.000 个条目,下面的查询查找某个游戏和玩家的个人最佳高分,但执行大约需要 60 秒。我在想应该有一种更有效的方法来做到这一点,也许使用复合索引,但那会是哪一种呢?
SELECT name, score, date, version, mode, attempts, time, id
FROM highscore h1
WHERE score = (
SELECT MAX( score )
FROM highscore h2
WHERE name = h1.name && gamename = "asteroids" && name = "bob"
)
我目前有以下索引:
id
score
name
name-gamename (composite)
非常感谢任何帮助!
【问题讨论】:
标签: mysql sql database optimization