1、想統計今日新增客戶數,昨日新增客戶數,以及今日跟進記錄數等等,數據量很大,前面用的是加1減1的方式,但經常會出現誤差,怎麼解決這個統計的問題?難道必須用count嗎?
大數據量的統計最好不要直接在主庫上搞 -- 加1減1的方式不鎖定表不準確,鎖定表影響性能,而count性能也會很差。
建議把統計功能獨立成一個子系統,業務伺服器透過訊息佇列把新增客戶/刪除客戶的操作通知到這個統計子系統裡面。
在這個子系統裡面可以考慮使用時間序列資料庫(例如開源的Elasticsearch)來存儲,非常方便統計。即使不用專門的時間序列資料庫,而直接用mysql的話,可以單獨搞個mysql資料庫,這樣鎖表來加1減1,或者count都可以,反正不是主庫。
如果是自增的id可以用今天最後一個減去昨天最後一個來計算。
使用的統計表加1減1
使用count
大數據量的統計最好不要直接在主庫上搞 -- 加1減1的方式不鎖定表不準確,鎖定表影響性能,而count性能也會很差。
建議把統計功能獨立成一個子系統,業務伺服器透過訊息佇列把新增客戶/刪除客戶的操作通知到這個統計子系統裡面。
在這個子系統裡面可以考慮使用時間序列資料庫(例如開源的Elasticsearch)來存儲,非常方便統計。即使不用專門的時間序列資料庫,而直接用mysql的話,可以單獨搞個mysql資料庫,這樣鎖表來加1減1,或者count都可以,反正不是主庫。
如果是自增的id可以用今天最後一個減去昨天最後一個來計算。
使用的統計表加1減1
使用count