mongoDB 查询名次

概述:全国700万大学生高考成绩排名查询

详细:一个数据表存储700万条考生成绩数据,考生通过输入准考证号即可查询到总成绩以及名次,这个需求怎么最优实现?

数据表字段:准考证号,语文,数学,英语,综合,总分,姓名,学号

阅读 3.3k
1 个回答

我理解下需求如下:

  1. 查询只按准考证号查询;
  2. 准考证是唯一的;
  3. 每次的返回结果都需要返回总成绩和名次;
  4. 成绩变化的频度不高,时间越往后频度越低;

实现思路:

  • 准考证号建立唯一索引,这样查询起来非常快,毫秒级别。
  • 单独写一个服务,根据记录的总成绩算出来其所在名次。这种查询效率最高。维护比较麻烦些。还要考虑成绩变了,名次没变这种不同步的情况。
  • 或者 每次都动态查询名次,这种实现简单、效率也还行(对于700W数据来说)。 不会存在成绩和名次同步问题。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进