鍍金池/ 問答/數(shù)據(jù)庫/ mongoDB 查詢名次

mongoDB 查詢名次

概述:全國700萬大學(xué)生高考成績排名查詢

詳細(xì):一個(gè)數(shù)據(jù)表存儲700萬條考生成績數(shù)據(jù),考生通過輸入準(zhǔn)考證號即可查詢到總成績以及名次,這個(gè)需求怎么最優(yōu)實(shí)現(xiàn)?

數(shù)據(jù)表字段:準(zhǔn)考證號,語文,數(shù)學(xué),英語,綜合,總分,姓名,學(xué)號

回答
編輯回答
誮惜顏

我理解下需求如下:

  1. 查詢只按準(zhǔn)考證號查詢;
  2. 準(zhǔn)考證是唯一的;
  3. 每次的返回結(jié)果都需要返回總成績和名次;
  4. 成績變化的頻度不高,時(shí)間越往后頻度越低;

實(shí)現(xiàn)思路:

  • 準(zhǔn)考證號建立唯一索引,這樣查詢起來非???,毫秒級別。
  • 單獨(dú)寫一個(gè)服務(wù),根據(jù)記錄的總成績算出來其所在名次。這種查詢效率最高。維護(hù)比較麻煩些。還要考慮成績變了,名次沒變這種不同步的情況。
  • 或者 每次都動(dòng)態(tài)查詢名次,這種實(shí)現(xiàn)簡單、效率也還行(對于700W數(shù)據(jù)來說)。 不會存在成績和名次同步問題。
2017年12月4日 01:06