1. 程式人生 > >Hibernate 二級快取的作用

Hibernate 二級快取的作用

使用快取,是需要對應用系統進行效能優化而常採用的一種重要手段。合理地運用快取,可以極大的提高應用系統的執行效率。
Hibernate中應用快取:因為應用程式訪問資料庫,讀寫資料的代價非常高,而利用持久層的快取可以減少應用程式與資料庫之間的互動,即把訪問過的資料儲存到快取中,應用程式再次訪問已經訪問過的資料,這些資料就可以從快取中獲取,而不必再從資料庫中獲取。同時如果資料庫中的資料被修改或者刪除,那麼是、該資料所對應的快取資料,也會被同步修改或刪除,進而保持快取資料的一致性。

Hibernate的二級快取由SessionFactory物件管理,是應用級別的快取。它可以快取整個應用的持久化物件,所以又稱為“SessionFactory快取”。
hibernate二級快取中的快取物件可以被整個應用的

Session物件共享,即使關閉當前Session物件,新建的Session物件仍可使用。使用Hibernate的二級快取之後查詢資料,Session物件會首先在以及快取中查詢有無快取資料被命中。如果沒有,則查詢二級快取。如果有,則直接返回所命中的資料;否則查詢資料庫。

在通常情況下會將具有以下特徵的資料放入到二級快取中: 
  很少被修改的資料。 
  不是很重要的資料,允許出現偶爾併發的資料。 
  不會被併發訪問的資料。 
  常量資料。 
  不會被第三方修改的資料

而對於具有以下特徵的資料則不適合放在二級快取中: 
  經常被修改的資料。 
  財務資料,絕對不允許出現併發。 
  與其他應用共享的資料。