亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何快速統計出某段時間內的記錄總數

如何快速統計出某段時間內的記錄總數

呼啦一陣風 2019-04-23 15:18:17
我們經常在項目中遇到的需求就是計算在一周內的記錄總數,而且這個數目是需要在列表頁出現的,所以用SELECTCOUNT顯然不合適。但是如果你用緩存來做的話,因為這個值是根據你的當前時間不斷在變的,比如用戶在下午14:10來訪問這個頁面,那么我們要計算的就是從7天前的14:10到現在這段時間內的記錄總數。這是不可能緩存的,我不知道各位是怎么設計的。我有一個思路就是,還是用SELECTCOUNT來統計,但是把它緩存住,一個小時更新一次??雌饋斫鉀Q的還可以,不知道各位有什么更好的思路,比這個準確度更高的。
查看完整描述

2 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

你要不創建一個trigger和一張表用來記錄行數,如果你的入數據庫的量不大的話。比如
ONINSERTUPDATEcounterSETtable_name_count=table_name_count+1;
然后前臺讀取的時候從那張表讀就是了。不過也要看你用的是什么SQL了,MySQL的MyISAM對這個問題是做了優化的;就直接SELECTCOUNT就是了。
                            
查看完整回答
反對 回復 2019-04-23
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

維護一個隊列,隊列的每個元素是記錄產生的時間:1.每當一個新紀錄產生時,入隊。更新隊列的元素總數。2.每當來一次查詢的時候,計算起始時間t,將所有小于t的記錄出隊。更新隊列的元素總數。返回隊列的元素總數。優點:高效、精確。
缺點:占用一定的內存,對于100萬個元素需要約4MB的內存空間。p.s.這個算法可以很容易地用mysql表來實現。
                            
查看完整回答
反對 回復 2019-04-23
  • 2 回答
  • 0 關注
  • 408 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號