搜尋

首頁  >  問答  >  主體

php - mysql 大數據 按時間 統計總數 必須用count嗎?

1、想統計今日新增客戶數,昨日新增客戶數,以及今日跟進記錄數等等,數據量很大,前面用的是加1減1的方式,但經常會出現誤差,怎麼解決這個統計的問題?難道必須用count嗎?

世界只因有你世界只因有你2797 天前564

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-05-16 13:13:10

    大數據量的統計最好不要直接在主庫上搞 -- 加1減1的方式不鎖定表不準確,鎖定表影響性能,而count性能也會很差。

    建議把統計功能獨立成一個子系統,業務伺服器透過訊息佇列把新增客戶/刪除客戶的操作通知到這個統計子系統裡面。

    在這個子系統裡面可以考慮使用時間序列資料庫(例如開源的Elasticsearch)來存儲,非常方便統計。即使不用專門的時間序列資料庫,而直接用mysql的話,可以單獨搞個mysql資料庫,這樣鎖表來加1減1,或者count都可以,反正不是主庫。

    回覆
    0
  • ringa_lee

    ringa_lee2017-05-16 13:13:10

    • 如果是自增的id可以用今天最後一個減去昨天最後一個來計算。

    • 使用的統計表加1減1

    • 使用count

    回覆
    0
  • 取消回覆