緩存是指為了降低應用程序對物理數據源訪問的頻次,從而提高應用程序的運行性能的一種策略
就是指如何更快速地去檢索數據庫
ORM框架訪問數據庫的效率直接影響應用程序的運行速度,提升和優化ORM框架的執行效率至關重要
Hibernate的緩存是提升和優化Hibernate執行效率的重要手段,所以學會Hibernate緩存的配置和使用是優化的關鍵
1、Hibernate一級緩存又稱為"Session緩存"、"會話級緩存"
2、通過Session從數據庫查詢實體時會把實體在內存中存儲起來,下一次查詢同一實體時不再從數據庫中獲取,而從內存中獲取,這就是緩存
3、一級緩存的生命周期和Session相同;Session銷毀,它也銷毀。
4、一級緩存中的數據可適用范圍在當前會話之內。
一級緩存無法取消
?evict():用于將某個對象從Session的一級緩存中清除
clear():用于將一級緩存中的所用對象全部清除
query.list()和query.iterate()區別:
list()直接發送sql語句,查詢數據庫;
iterate()發送sql語句,從數據庫取出id,然后先從緩存中根據id查找對應信息,
有就返回結果,沒有就根據id發送sql語句,查詢數據庫。
二級緩存又稱為"全局緩存"、"應用級緩存"
二級緩存中的數據可適用范圍是當前應用的所有會話(與sessionFactory相關)
在通常情況下會將具有以下特征的數據放入到二級緩存:
很少被修改的數據
不是很重要的數據,允許出現偶爾并發的數據
不會被并發訪問的數據
參考數據