公告資訊

未經授權,禁止轉載網站文章與內容。如有需要可以跟我聯絡,謝謝!!




2010年9月27日 星期一

Windows Server AppFabric Caching (3) - 與資料庫存取在效能方面的比較

在利用Windows Server AppFabric Caching,建立大量資料存取的系統時,Windows Server AppFabric可以大大的減輕系統存取資料庫時所造成的I/O負擔,同時其Key-Value的存取方式也讓程式可以透過Key值直接取得所需要的物件,不需要花時間建立資料連線。下面分享一個實際的測試結果:

在這一個測試當中,我將4000萬筆資料從資料表搬到Cache當中儲存,再與資料庫查詢同一筆資料的結果作比較;資料庫與Cache Server都在美國的Data Center中。在沒有啟用Local Cache功能時,第一次查詢資料的結果為:

image

相同的條件再執行一次,結果為:

image

從結果可以看出,使用資料庫查詢在第一次建立資料連線時,需要耗費相當的時間;而當資料連線建立完成之後,後續的存取時間使用Cache或是使用資料庫其實差異不大。但就如同一開始所說的,使用Cache可以減輕資料庫I/O的負擔,這對於我們一天有幾十GB資料要新增的系統來說,有相當的幫助。

接下來,我們啟用LocalCache之後,再重新測試一次:應用程式第一次查詢資料的結果和之前差不多:

image

(請想想,相對於對第一次資料庫存取而言,為何這一次快了一倍? )

相同的條件再執行一次,結果為:

image

0 毫秒!!

對於大量提供資料的應用程式而言,Windows Server AppFabric Caching 除了可以減輕資料庫的負擔之外,當啟用LocalCache之後,AppFabric Caching會自動將使用過的物件快取在應用程式當中,當下次要再使用相同的物件時,就不需要再從Cache Layer當中去存取物件,因此幾乎是即時就可以取得資料!!

但需要注意的是,雖然Cache可以讓我們在近乎即時的狀況之下使用物件,但是在設計上,Key-Value相對於關聯式資料庫而言,是完全不同的效果,同時資源的消耗上也是完全不同的。下次,再來談設計上的考量…

沒有留言:

最新回應

Loading...

即時與版主對話


(若狀態顯示"忙碌"時,我可能無法馬上回應。你可以留下Email,我會盡快跟你聯絡,謝謝喔!!)