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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不知道各位有什么更好的思路,比下面這個準確度更高的?

不知道各位有什么更好的思路,比下面這個準確度更高的?

我們經(jīng)常在項目中遇到的需求就是計算在一周內(nèi)的記錄總數(shù),而且這個數(shù)目是需要在列表頁出現(xiàn)的,所以用SELECT COUNT顯然不合適。但是如果你用緩存來做的話,因為這個值是根據(jù)你的當前時間不斷在變的,比如用戶在下午14:10來訪問這個頁面,那么我們要計算的就是從7天前的14:10到現(xiàn)在這段時間內(nèi)的記錄總數(shù)。這是不可能緩存的,我不知道各位是怎么設(shè)計的。我有一個思路就是,還是用SELECT COUNT來統(tǒng)計,但是把它緩存住,一個小時更新一次。
查看完整描述

3 回答

?
藍山帝景

TA貢獻1843條經(jīng)驗 獲得超7個贊

你要不創(chuàng)建一個trigger和一張表用來記錄行數(shù),如果你的入數(shù)據(jù)庫的量不大的話。 比如
ON INSERT UPDATE counter SET table_name_count = table_name_count + 1 ;
然后前臺讀取的時候從那張表讀就是了。

不過也要看你用的是什么SQL了, MySQL的 MyISAM 對這個問題是做了優(yōu)化的; 就直接SELECT COUNT就是了。


查看完整回答
反對 回復 2023-04-19
?
縹緲止盈

TA貢獻2041條經(jīng)驗 獲得超4個贊

維護一個隊列,隊列的每個元素是記錄產(chǎn)生的時間:

1. 每當一個新紀錄產(chǎn)生時,入隊。更新隊列的元素總數(shù)。

2. 每當來一次查詢的時候,計算起始時間t,將所有小于t的記錄出隊。更新隊列的元素總數(shù)。返回隊列的元素總數(shù)。

優(yōu)點:高效、精確。
缺點:占用一定的內(nèi)存,對于100萬個元素需要約4MB的內(nèi)存空間。

p.s. 這個算法可以很容易地用mysql表來實現(xiàn)。


查看完整回答
反對 回復 2023-04-19
?
函數(shù)式編程

TA貢獻1807條經(jīng)驗 獲得超9個贊

不斷變化,還是count比較好吧,你緩存還不要斷更新緩存。
因為這個值是根據(jù)你的當前時間不斷在變的。
還有你實際上每時每刻都要重新計算,因為14:00訪問,14:01訪問,14:02訪問得到的數(shù)據(jù)都需要重新計算,都可能發(fā)生變化。
不過要是只是統(tǒng)計7天的數(shù)據(jù),你倒是可以緩存一下,當前時間超過7天的就從緩存中刪除,然后不斷更新對應(yīng)時間段的緩存。
可是有一個問題,如果按照時間段來緩存count,你可能會同時更新n個緩存。

查看完整回答
反對 回復 2023-04-19
  • 3 回答
  • 0 關(guān)注
  • 201 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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