成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate緩存的支持和使用情況

開發 后端
本文介紹Hibernate緩存。支持Hibernate緩存的有get,load,iterate和save方法。不要想當然的以為Hibernate緩存一定能提高性能,僅僅在你能夠駕馭它并且條件合適的情況下才是這樣的。

哪些方法支持Hibernate緩存
*get()
*load()
*iterate()  (查詢實體對象)
save()

查詢緩存只對query.list()起作用

一級緩存測試:

1.Load測試: 在同一個session中發出兩次load查詢(1)

2.Get測試: 在同一個session中發出兩次get查詢(1)

3.iterate測試: 在同一個session中發出兩次iterator查詢(1(id)+N,1(id))

4.Iterate查詢屬性測試: 同一個session中發出兩次查詢屬性(2次,iterate查詢普通屬性,一級緩存不會緩存,所以會發出sql)

5.同一個session中先save,再發出load查詢save過的數據--save是使用緩存的

6.同一個session中先調用load查詢,然后執行sessio.clear()或session.evict(),再調用load查詢(2次)

       sessio.clear()或session.evict()可以管理一級緩存,一級緩存無法取消,但可以管理. 上面的語句都會發出sql 因為一級緩存中的實體被清除了

7.向數據庫中批量加入1000條數據

       //每一定條數據就強制session將數據持久化,同時清除緩存,避免大量數據造成內存溢出

開啟二級緩存測試:

1.開啟兩個session中發出兩次load查詢(get與load一樣,1次),

2.開啟兩個session,分別調用load,再使用sessionFactory清楚二級緩存(2次)

3.一級緩存和二級緩存的交互

session.setCacheMode(CacheMode.GET);    //設置成 只是從二級緩存里讀,不向二級緩存里寫數據 (2)

session.setCacheMode(CacheMode.PUT);  //設置成只是向二級緩存里寫數據,不讀數據 (2次)

Hibernate緩存查詢測試:開啟hibernate查詢緩存測試:

1.  開啟查詢緩存,關閉二級緩存,開啟一個session,分別調用query.list  (查詢屬性)(1次)

2.  開啟查詢緩存,關閉二級緩存,開啟兩個session,分別調用query.list  (查詢屬性)

(1次)第二次沒有去查詢數據庫,因為查詢緩存生命周期與session生命周期無關

3.  開啟查詢緩存,關閉二級緩存,開啟兩個session,分別調用query.iterate (查詢屬性)

(2次)第二去查詢數據庫,因為查詢緩存只對query.list()起作用,對query.iterate()不起作用,也就是說query.iterate()不使用查詢緩存

4.  關閉查詢緩存,關閉二級緩存,開啟兩個session,分別調用query.list (查詢實體對象)      第二去查詢數據庫,因為list默認每次都會發出查詢sql

5.  開啟查詢緩存,關閉二級緩存,開啟兩個session,分別調用query.list (查詢實體對象)      第二去查詢數據庫時,會發出N條sql語句,因為開啟了查詢緩存,關閉了二級緩存,那么查詢緩存會緩存實體對象的id,所以hibernate會根據實體對象的id去查詢相應的實體,如果緩存中不存在相應的實體,那么將發出根據實體id查詢的sql語句,否則不會發出sql,使用緩存中的數據

6.  開啟查詢緩存,開啟二級緩存,開啟兩個session,分別調用query.list (查詢實體對象)      第二不會發出sql,因為開啟了二級緩存和查詢緩存,查詢緩存緩存了實體對象的id列表,hibernate會根據實體對象的id列表到二級緩存中取得相應的數據

二級緩存在項目中的集成和使用

1.將echcache.xml文件拷貝到src下, 二級緩存hibernate默認是關閉的,手動開啟
2.開啟二級緩存,修改hibernate.cfg.xml文件,
< property name=”hibernate.cache.user_second_level_cache”>true< /property>
3.指定緩存產品提供商
< property name=”hibernate.cache.provider_calss”>org.hibernate.cache.EhCacheProvider< /property>
4.指定那些實體類使用二級緩存(兩種方法,推薦使用第二種)
***種:在*.hbm.xml中,在< id>之前加入
< cache usage=”read-only” />, 使用二級緩存
第二種:在hibernate.cfg.xml配置文件中,在< mapping resource=”com/Studnet.hbm.xml” />后面加上:
< class-cache class=” com.Studnet” usage=”read-only” />

總結:

不要想當然的以為Hibernate緩存一定能提高性能,僅僅在你能夠駕馭它并且條件合適的情況下才是這樣的。hibernate的二級緩存限制還是比較多的,不方便用jdbc可能會大大的降低更新性能。在不了解原理的情況下亂用,可能會有1+N的問題。不當的使用還可能導致讀出臟數據。

如果受不了hibernate的諸多限制,那么還是自己在應用程序的層面上做緩存吧。

在越高的層面上做緩存,效果就會越好。就好像盡管磁盤有緩存,數據庫還是要實現自己的緩存,盡管數據庫有緩存,咱們的應用程序還是要做緩存。因為底層的緩存它并不知道高層要用這些數據干什么,只能做的比較通用,而高層可以有針對性的實現緩存,所以在更高的級別上做緩存,效果也要好些吧。

對于性能的看法是:合理的性能而不是***的性能。什么是合理的?用戶能感覺到(或敏感的)的范圍內,不成為物理上業務處理的瓶頸,比如常說的3秒之內響應等。

【編輯推薦】

  1. Hibernate緩存簡介及分類
  2. Hibernate中generator屬性的意義
  3. hibernate Key Generator 主鍵生成方式
  4. Hibernate的主鍵生成機制
  5. hibernate的Query cache
責任編輯:book05 來源: 博客大巴
相關推薦

2010-10-14 16:10:28

MySQL排序

2017-01-18 21:57:14

2015-11-09 15:32:34

TorTor網絡隱私網絡

2022-07-13 14:26:26

Linux

2021-12-22 15:13:03

iOS 15Swift二進制

2018-07-06 14:52:49

Docker容器云服務

2010-05-12 15:14:59

subversion管

2021-03-26 07:17:38

Linux命令磁盤

2009-06-16 09:18:26

Linux系統管理系統資源

2010-04-16 10:00:06

Oracle查看表空間

2020-06-17 14:10:01

Python內存程序

2010-02-03 17:16:58

Linux內存使用

2017-11-30 18:42:22

PythonCPU腳本分析

2010-06-02 11:06:15

Linux 內存監控

2010-11-16 11:40:04

Oracle查詢表空間

2009-12-14 17:25:20

Linux操作系統

2009-02-03 09:49:00

FTP空間共享

2020-12-07 18:19:46

Common Lisp方言編程

2014-04-24 16:26:31

UbuntuUbuntu 磁盤Linux基礎

2020-02-04 13:50:09

Linux進程內存使用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区一区三区 | 99精品一区二区三区 | 国产激情视频网站 | 中文字幕精品一区二区三区精品 | 久草在线在线精品观看 | 综合久久综合久久 | 亚洲国产高清高潮精品美女 | 在线不卡视频 | 久久国产欧美日韩精品 | 九九热视频这里只有精品 | 久久69精品久久久久久久电影好 | 日韩免费一区二区 | 亚洲欧美综合网 | 日韩欧美国产精品一区二区三区 | 成人一区二区三区在线观看 | 欧美日韩国产高清 | 日韩欧美视频在线 | 欧美亚洲一区二区三区 | 精品一区二区三区免费视频 | 免费高潮视频95在线观看网站 | 91免费在线看 | 在线成人免费av | 欧美激情精品久久久久久免费 | 蜜桃在线一区二区三区 | 国产一区二区欧美 | 一级黄色录像毛片 | 欧美日韩视频在线第一区 | 国产精品91久久久久久 | 亚洲一二三在线 | 精品亚洲一区二区三区 | 久久一区 | 成人网av| 日本公妇乱淫xxxⅹ 国产在线不卡 | 成人国产精品久久久 | www.色午夜.com | 天堂一区二区三区四区 | 91精品国产一区二区三区 | 99精品一区二区 | 日本不卡一区二区三区在线观看 | 久久久久久免费免费 | 亚洲大片在线观看 |