hibernate一級緩存、二級緩存

     hibernate緩存是指爲了下降應用程序對物理數據源訪問的次數,從而提升應用程序的運行性能的一種策略。並非指計算機內存或者cpu的一二級緩存。 ORM框架訪問數據庫的效率直接影響應用程序的運行速度,提高和優化orm框架的執行效率相當重要。hibernate緩存是提高和優化hibernate執行效率的重要手段。sql

    一級緩存代碼總結數據庫

     1,同一個session兩次查詢同一個對象,只輸出一個sql語句,證實默認使用緩存了;緩存

     2,在不一樣的session中屢次查詢同一個對象,會執行屢次數據庫查詢;session

     3,在一級緩存中,每個相同的對象都具備惟一的OID;一級緩存又叫session級緩存,或者會話級的緩存。生命週期等同session;併發

     4,一級緩存是默認開啓的,而且沒法取消。管理一級緩存能夠經過session.evict(obj),session.clear()方法清除一個或所有對象;框架

     5,query.list()方法和query.iterator()方法不會使用一級緩存,可是iterator方法獲得對象ID後,獲得對象的其餘屬性會首先使用一級緩存,獲得對象ID不使用一級緩存,是向數據庫發送的sql語句。ide

    二級緩存配置總結:性能

    1,二級緩存要用到commons-logging-1**.jar和ehcache.jar,ehcache.xml配置文件放在項目路徑下;優化

    2,hibernate.cfg.xml中,指定二級緩存的外部實現類,要配置hibernate

<property name="cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>

    3,哪一個實體類要用到二級緩存,就在它的配置文件的class標籤中添加<cache usage="read-only"/>,使該類的二級緩存生效,註解需再查找,cache標籤還有另外的2個屬性include等;

    4,二級緩存又稱爲全局緩存,應用級緩存。適用範圍是當前應用的全部會話。二級緩存是可插播式緩存,默認是EHChache,還支持其餘二級緩存組件,如Hashtable、OSChache等;

    5,二級緩存存放不多被修改的數據,不是很重要,容許偶爾併發,不會頻繁併發的參考數據。

    總結對比:(使用慕課網的一張圖片,可參考慕課網相關視頻)

   

相關文章
相關標籤/搜索