Groovy/Grails应用程序GORM中的排行榜样式查询

Groovy/Grails应用程序GORM中的排行榜样式查询,grails,gorm,Grails,Gorm,我在生产中有一个Grails应用程序,我们将在其中实现一个排行榜。假设用户正在玩石头剪刀,排行榜正在统计赢家、输家和平局。没关系,没问题。但是现在我们的用户群已经足够大了,一个人必须滚动,滚动,滚动才能找到他们在列表中的位置。我们想做的是在排行榜上显示前10名左右(这显示在iPhone btw上),然后显示用户名及其相对于其他人的排名,如下所示: 安德鲁 布鲁斯 查理 道格 3194你 我知道这可以通过查询完整的列表,然后计算位置来实现,但每次执行该操作似乎都很昂贵。我想到的另一种选择是从qu

我在生产中有一个Grails应用程序,我们将在其中实现一个排行榜。假设用户正在玩石头剪刀,排行榜正在统计赢家、输家和平局。没关系,没问题。但是现在我们的用户群已经足够大了,一个人必须滚动,滚动,滚动才能找到他们在列表中的位置。我们想做的是在排行榜上显示前10名左右(这显示在iPhone btw上),然后显示用户名及其相对于其他人的排名,如下所示:

  • 安德鲁
  • 布鲁斯
  • 查理
  • 道格
  • 3194你

    我知道这可以通过查询完整的列表,然后计算位置来实现,但每次执行该操作似乎都很昂贵。我想到的另一种选择是从quartz工作中运行该查询,并保存每个人在排行榜中的当前位置,以便轻松访问。我也不喜欢这个,因为那样的话,它也不会是一个实时的答案


    我想我正在寻找的是一种GORM方法,几乎可以根据查询条件对其对等方中的单个记录进行索引。

    为什么不将高分表作为隔夜批处理作业(如StackOverflow)来计算呢?正如我提到的,我正在考虑使用Quartz进行此操作,并牺牲查询的真正实时性。蒂姆,谢谢你的参与。你可以使用标准的缓存技术,比如varnish,让itd计算一次,或者自己做一些缓存,比如保存和更新计算列表,然后在mvc中从db传递列表