對於經常實用的查詢語句,如果啟用了查詢快取,當第一次執行查詢語句時,hibernate會把查詢結果存放在查詢快取中,以後再次執行該查詢語句時,只需從快取中獲得查詢結果,從而提高查詢效能
查詢快取使用如下場合:
啟用查詢快取的步驟
配置二級快取,因為查詢快取依賴於二級快取
在hibernate配置檔案中啟用查詢快取:true
對於希望啟用查詢快取的查詢語句,呼叫query的setcacheable()方法
true
第二步:呼叫query或criteria 的setcacheable(true)方法
第三步:配置二級快取(查詢緩依賴二級快取)
-- >
@test
public void testquerycache()
時間戳快取區域存放了對於查詢結果相關的表進行插入,更新或刪除操作的時間戳。hibernate通過時間戳快取區域來判斷被快取的查詢結果是否過期,其執行過程如下:
@test
public void testtimestampcache()
//列印結果:會列印select語句,update語句,select語句三條sql語句
query介面的iterator()方法
大多數情況下,應考慮使用list()方法執行查詢操作
iterator()方法僅在滿足以下條件的場合,可以
稍微提高查詢效能
@test
public void testqueryiterator()
hibernate二級快取
cacheconcurrencystrategy.none cacheconcurrencystrategy.read only 唯讀模式,在此模式下,如果對資料進行更新操作,會有異常 cacheconcurrencystrategy.read write 讀寫模式在更新快取的時候會把快取裡面的資料...
hibernate的二級緩衝
二級緩衝 什麼是二級緩衝?二級緩衝也可以理解為sessionfactory級別的緩衝,sessionfactory是生產session的工廠,那麼我們可不可以這麼理解,session關聯乙個指向資料庫的結果集,那麼下次我在發sql的時候,我發現,sessionfactory裡面已經有了乙個指向這個結...
hibernate 二級快取
session快取 一級快取 sql查詢結果快取,由hibernate管理 sessionfactory內建快取,內建快取是hibernate自帶的,用於存放預定義的sql以及hbm.xml描述的元資料,不可解除安裝 sessionfactory外接快取 二級快取 由外部外掛程式提供,外接快取的資料...