我有一个查询,用于获取每个游戏当前玩家人数的游戏,该游戏按玩家占玩家插槽百分比的度量来排序。

它是这样的:

SELECT
  g.* , COUNT( p.ID ) NUM_OF_PLAYERS
FROM
  games g,
  players p
WHERE
  g.ID = p.GAME_ID
GROUP BY
  g.ID
ORDER BY
  COUNT( p.ID ) / g.MAX_NUM_OF_PLAYERS DESC


大约需要4秒钟。

解释主要是给我的:



如何使其更快?

最佳答案

试试这个查询。它更快吗?

select g.*,p.NUM_OF_PLAYERS NUM_OF_PLAYERS
from games g
left join
(
select GAME_ID, COUNT( ID ) NUM_OF_PLAYERS
  from players group by GAME_ID
) p on (g.ID = p.GAME_ID)

ORDER BY
  p.NUM_OF_PLAYERS/g.MAX_NUM_OF_PLAYERS DESC

10-01 23:57
查看更多