0
我设计这样一个简单的SQL表:我该如何索引我的MySQL表中的列?
id, username, platform, time
ID和用户名都是字符串,平台和时间是整数。
我收到了一百万行的缓慢查询,特别是当我按时间排序排列最上面的行时。我怎么能一次改善我的所有用例?
我需要:
- PAGINATE,通过降时间排序出场
- 得到一个ID /用户名/平台组合
- 更新一个ID /用户名/平台上播放时的行号组合
谢谢你的帮助。
编辑:
以下是查询。
SELECT *
FROM (SELECT @rownum:[email protected]+1 `rank`, `id`
FROM leaderboard, (SELECT @rownum:=0) r ORDER BY `time` DESC)
AS `ranks` WHERE `id`=:id;
SELECT *
FROM leaderboard
ORDER BY `time` DESC
LIMIT 10 OFFSET :page;
REPLACE INTO leaderboard
(`platform`, `id`, `username`, `time`)
VALUES (:platform, :id, :username, :time);
编辑您的问题并显示您想优化的查询或查询。 –
我刚刚做到了。感谢您的建议。 – BinarMorker
那些“组合”太模糊;请提供'SELECT'。 –