天天看點

按分類統計商品總數的性能優化思考

按分類統計商品總數的性能優化思考

如上圖,在很多購物類商城系統中經常能看到類似的産品分類清單,今天市場部的同志們要求每個分類後要顯示該類的産品總數,并且沒有産品的分類不用顯示。公司這個項目中的分類有近1000種(并且是無限級分類的樹型結構),如果按正常統計方法,每個分類ID都去count一下(同時考慮到每個分類的下級子分類産品數),這樣的處理效率肯定很低的。

想了個辦法從二個層面優化:

1.資料庫層面

建立一個臨時表,用遊标把産品總數分類事先統計好,一次性在資料庫中完成,避免ASPX頁面中的多次查詢請求。

2.頁面的資料緩存優化

分類清單顯示時利用資料依賴緩存,如果臨時表的資料沒有變化,則直接從緩存中取值顯示,如果上述臨時表的資料有變化,則更新緩存。 

3.産品在增删改時,調用一下步驟1中的存儲過程,以更新臨時表.

注:因為公司平台每天新增的産品數并不多,主要壓力來自資料的查詢,是以總體看下來這樣優化的效果還是比較理想的。