1、數據庫優化
問題痛點:從上面描述的情況來看,每天產生的數據大概有10W+條,且只有一張表存儲;
解決方案:分庫分表,表可以拆分為問卷主表、問卷對應的問題表、問題對應的答案明細表等,長期來說數據量不小,可以考慮分庫,主從分離等,查詢添加索引等方法。
2、處理邏輯優化
問題痛點:一次性查詢的數據過多,導致前端展示較慢;
解決方案:查詢結果分批次展示(比如有100W條數據,分為100個批次,每個批次10000條數據)。
3、存儲優化
問題痛點:沒有緩存,直接從DB單表讀取,容易造成超時和表鎖;
解決方案:將數據放入緩存服務器(比如Redis),設定查詢次數或者有效時間,多級緩存,提高緩存命中,防止緩存穿透和同時失效帶來的瞬間DB壓力。
4、業務優化
問題痛點:多人短時間內查詢大量數據,對服務造成巨大壓力;
解決方案:和產品業務溝通,讓查詢操作時間在業務平緩期,拉長查詢操作的時間線等。
5、服務優化
問題痛點:單臺服務器;
解決方案:做服務集群和負載均衡,增加監控,設定閾值,超過閾值則臨時增加新的服務器,分流。
推薦閱讀: