hibernate快取機制

2021-04-28 22:02:46 字數 1151 閱讀 7145

hibernate的快取機制:

首先引入快取的目的: hibernate 在查詢資料時,首先到快取中去查詢,如果找到就直接使用,找不到的時候就會從物理資料來源中檢索,所以,把頻繁使用的資料載入到快取區後,就可以大大減少應用程式對物理資料來源的訪問,使得程式的執行效能明顯的提公升.

什麼是快取:快取是位於應用程式與物理資料來源之間,用於臨時存放複製資料的記憶體區域,目的是為了減少應用程式對物理資料來源訪問的次數,從而提高應用程式的執行效能.

快取的分類:session 的快取被稱為hibernate的第一級快取。sessionfactory的外接快取稱為hibernate 的二級快取。這兩個快取都位於持久層,它們存放的都是資料 庫資料的拷貝。sessionfactory的內建快取 存放元資料和預定義sql,   sessionfactory的內建快取是唯讀快取。

一級快取session的作用:

1,減少 資料庫的訪問頻率,提高訪問效能。

2,保證快取中的物件與資料庫同步,位於快取中的物件稱為持久化物件。

3,當持久化物件之間存在關聯時,session 保證不出現物件圖的死鎖。

二級快取sessionfactory:

sessionfactory的快取分為內建快取和外接快取.內建快取中存放的是sessionfactory物件的一些集合屬性包含的資料(對映元素據 及預定義sql語句等),對於應用程式來說,它是唯讀的.外接快取中存放的是資料庫資料的副本,其作用和一級快取類似.二級快取除了以記憶體作為儲存介質 外,還可以選用硬碟等外部儲存裝置.

快取的範圍分為3類:

1.事務範圍

事務範圍的快取只能被當前事務訪問,每個事務都有各自的快取,快取內的資料通常採用相互關聯的物件形式.快取的生命週期依賴於事務的生命週期,只有當事務結束時,快取的生命週期才會結束.事務範圍的快取使用記憶體作為儲存介質,一級快取就屬於事務範圍.

2.應用範圍

應用程式的快取可以被應用範圍內的所有事務共享訪問.快取的生命週期依賴於應用的生命週期,只有當應用結束時,快取的生命週期才會結束.應用範圍的快取可以使用記憶體或硬碟作為儲存介質,二級快取就屬於應用範圍.

3.集群範圍

在集群環境中,快取被乙個機器或多個機器的程序共享,快取中的資料被複製到集群環境中的每個程序節點,程序間通過遠端通訊來保證快取中的資料的一致,快取中的資料通常採用物件的鬆散資料形式.

Hibernate快取機制

hibernate快取分類 session快取,一級快取.sessionfactory的快取分為內建快取和外接快取.內建快取中存放的是sessionfactory物件的一些集合屬性包含的資料 對映元素據及預定義sql語句等 對於應用程式來說,它是唯讀的.外接快取中存放的是資料庫資料的副本,其作用和一...

Hibernate快取機制

快取是位於應用程式與物理資料來源之間,用於臨時存放複製資料的記憶體區域,目的是為了減少應用程式對物理資料來源訪問的次數,從而提高應用程式的執行效能.hibernate在查詢資料時,首先到快取中去查詢,如果找到就直接使用,找不到的時候就會從物理資料來源中檢索,所以,把頻繁使用的資料載入到快取區後,就可...

Hibernate快取機制

n 1問題 list 獲得物件 只會與資料庫互動一次,查詢出來全部資訊 listls list session.createquery from setfirstresult 0 setmaxresults 30 list iterator ls.iterator for hasnext itera...