第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

10000個(gè)學(xué)生,根據(jù)快速的根據(jù)考分來(lái)計(jì)算每個(gè)學(xué)生的擊敗率?

10000個(gè)學(xué)生,根據(jù)快速的根據(jù)考分來(lái)計(jì)算每個(gè)學(xué)生的擊敗率?

PHP
慕仙森 2019-03-15 01:26:25
10000個(gè)學(xué)生,根據(jù)快速的根據(jù)考分來(lái)計(jì)算每個(gè)學(xué)生的擊敗率?舉個(gè)例子,10000個(gè)學(xué)生來(lái)考試,考完后提交得分,需要根據(jù)得分來(lái)計(jì)算學(xué)生的擊敗率(比如,我打敗了90%的同學(xué)),每個(gè)學(xué)生提交答案的試卷不確定,有快,有慢。 我的疑問(wèn):每個(gè)學(xué)生提交答案后,所有學(xué)生的擊敗率都要重新計(jì)算,內(nèi)存溢出了。 我現(xiàn)在的計(jì)算方式:按分?jǐn)?shù)desc排序,循環(huán)每個(gè)學(xué)生,計(jì)算得分比這個(gè)學(xué)生多的人有多少。 我是一次取10000條記錄呢,還是每次取100條數(shù)據(jù),多循環(huán)幾次?
查看完整描述

10 回答

?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

樓主這問(wèn)題提的有點(diǎn)怪。擊敗率,無(wú)非就是分?jǐn)?shù)比自己低的人,兩條sql語(yǔ)句,一條交卷人數(shù)count,一條分?jǐn)?shù)比自己低的人數(shù)count,兩條sql語(yǔ)句不至于內(nèi)存溢出吧!
像樓主那個(gè)樣操作,每個(gè)人一提交,就更新之前所有提交的人的擊敗率,不內(nèi)存溢出才有鬼。
如果樓主把這個(gè)擊敗率當(dāng)成實(shí)時(shí)更新的字段。那只能用計(jì)劃任務(wù)定時(shí)更新。
感覺(jué)沒(méi)必要。一般來(lái)說(shuō)數(shù)據(jù)列表都會(huì)分頁(yè),遍歷的時(shí)候20條左右,就統(tǒng)計(jì)一次總?cè)藬?shù),然后這20 count比他分?jǐn)?shù)低的,花費(fèi)不了多少時(shí)間。至于后期如果要數(shù)據(jù)導(dǎo)出,怕影響效率,寫個(gè)腳本,直接把擊敗率一次性更新不就好了。

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
幕布斯7119047

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

記錄這次試題,規(guī)定一定時(shí)間內(nèi)完成,其他情況視為0分處理,等時(shí)間到了,把所有提交的數(shù)據(jù)全那出來(lái),自己排列計(jì)算,然后再賦值結(jié)果

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊

0x1. 等所有學(xué)生都完成提交再做計(jì)算,最后得分根據(jù)交卷時(shí)間與成績(jī)排名

你應(yīng)該不是實(shí)時(shí)的把,即便是實(shí)時(shí)的你也可以做個(gè)`loding`,等確定所有人交卷完成再請(qǐng)求服務(wù)端進(jìn)行排名和擊敗率把

0x2. 交卷應(yīng)該有個(gè)統(tǒng)一等時(shí)間,比如答卷時(shí)間為120分鐘

我覺(jué)得樓主最主要等是沒(méi)搞明白產(chǎn)品邏輯把 ,您的那個(gè)循環(huán)是搞什么...
查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
慕妹3146593

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊

學(xué)生提交卷子的時(shí)候計(jì)算這個(gè)人的擊敗率即可。
已經(jīng)提交完卷子的人再計(jì)算擊敗率沒(méi)有意義。所以你這個(gè)處理好就行,不用計(jì)算全部人

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊

樓主的擊敗率是要保存到表里嗎?要是要保存到表里的話還是等都完成了之后再存比較好吧。
如果只是交卷的時(shí)候展示的話完全就不用太擔(dān)心了吧?

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊

沒(méi)有必要實(shí)時(shí)計(jì)算所有人的擊敗率,
只需要在學(xué)生提交或者提交之后再次查詢時(shí)計(jì)算這一個(gè)學(xué)生的擊敗率即可,
分?jǐn)?shù)字段加個(gè)索引,每次計(jì)算一下分?jǐn)?shù)比他低的人有多少,
提交的總?cè)藬?shù)做一個(gè)計(jì)數(shù)器就可以,每提交一個(gè)+1,計(jì)算擊敗率直接拿過(guò)來(lái)用就行了,效率很高,
最多就是10000個(gè)人同時(shí)請(qǐng)求而已,這是并發(fā)需求,服務(wù)器處理就可以了

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

數(shù)據(jù)表中只記錄學(xué)生、分?jǐn)?shù)

create table stu(
    stuid int,
    score FLOAT
)

另外建個(gè)視圖

select stuid,(select count(1) from stu t2 where t2.score < t1.score)/(select count(*) from stu t3)*100 as beatRate
from stu t1

https://img1.sycdn.imooc.com//5c8f6a090001718001390159.jpg

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
富國(guó)滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

做個(gè)分組比較好,比如1-20分一組,20-40分一組.....
這樣統(tǒng)計(jì)每個(gè)組下的人數(shù)就好。

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

redis sorted set

查看完整回答
反對(duì) 回復(fù) 2019-03-18
  • 10 回答
  • 0 關(guān)注
  • 1051 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)