麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Hibernate Iterator JCS分析

2019-11-18 13:55:41
字體:
供稿:網(wǎng)友

  JCS是一個對象Cache,它可以把java對象緩存起來,提高那些訪問頻率很高的Java對象的存取效率。JCS是按照對象的唯一標(biāo)示來存取對象的,比如說可以按照對象的hashCode來存取。

對于Hibernate來說,可以利用JCS來緩存查詢結(jié)果,這樣當(dāng)下次訪問同樣的數(shù)據(jù),就無須去數(shù)據(jù)庫取,直接從JCS中取出來,加快了查詢速度。

當(dāng)Hibernate使用List或者Iterator方式來第一次讀取數(shù)據(jù)的時候,JCS是空的,此時不管是List方式還是Iterator方式都會往JCS里面填充查詢出來的持久對象,例如:

select c from Cat as c



select c.id, c.name from Cat as c

這種HQL語句不構(gòu)造PO,因此不會去填充JCS。

好了,現(xiàn)在JCS里面填好了數(shù)據(jù),但是該怎么取呢?上面我說過是按照對象的唯一標(biāo)示來存取的,而對于PO持久對象來說,唯一標(biāo)示就是主鍵,因此Hibernate首先必須獲得主鍵列表,然后根據(jù)主鍵列表挨個判定,看這個持久對象究竟是在JCS里面還是在數(shù)據(jù)庫里面,假如在JCS里面,那么按照主鍵取,假如在數(shù)據(jù)庫,那么發(fā)送sql取。

現(xiàn)在我們來分析為什么Iterator可以使用JCS,而List不能。上面說了,用JCS之前,要先獲得持久對象的主鍵,才能去JCS里面取持久對象,而我們怎么才能獲得主鍵列表呢?必須去數(shù)據(jù)庫中取得,這一步是沒有辦法緩沖的。

Hibernate Iterator的查詢本身是分為兩步的:

==> select id from cat
==> select * from cat where id = ?
==> select * from cat where id = ?
...
==> select * from cat where id = ?

第一步,去數(shù)據(jù)庫中取主鍵列表,第二步,按照主鍵一個一個取數(shù)據(jù)。當(dāng)然了,我們現(xiàn)在可以看出來,Iterator方式下假如不用JCS的話,那么從數(shù)據(jù)庫中取出n條記錄就需要n+1次sql查詢,這是非常可怕的事情,因此假如在沒有使用JCS的情況下,你又必須一次去取大量數(shù)據(jù),應(yīng)該避免使用Iterator。

而Iterator的第一次sql是取主鍵列表,這個時間消耗是非常少的,假如使用了JCS,那么每次查詢?nèi)匀灰豢杀苊獾娜グl(fā)送一次sql: select id from cat 去取主鍵列表,然后呢? 然后Iterator就不會那么傻了,他會先到JCS里面去看看,按照主鍵去找持久對象,假如有了,直接拿出來用,假如沒有,那么只好去數(shù)據(jù)庫中取得,然后再把它填到JCS里面去。

因此可以看出來,JCS有點類似一個內(nèi)存中的簡單對象數(shù)據(jù)庫, Iterator的第一次sql取主鍵列表是必須要到數(shù)據(jù)庫里面取的,取得了主鍵這把鑰匙以后,Iterator會首先嘗試開JCS這把鎖,打得開就直接進去,假如打不開,就只好去開數(shù)據(jù)庫這把鎖了。

而Hibernate List方式是JDBC的簡單封裝,一次sql就把所有的數(shù)據(jù)都取出來了,它不會像Iterator那樣先取主鍵,然后再取數(shù)據(jù),因此List無法利用JCS。不過List也可以把從數(shù)據(jù)庫中取出的數(shù)據(jù)填充到JCS里面去。

最佳的方式:第一次訪問使用List,快速填充JCS,以后訪問采用Iterator,充分利用JCS。

mikeho write:

那JCS是如何和Database保持同步的?

robbin write:

jcs.default.elementattributes.MaxLifeSeconds=240(最大緩沖時間)

超時做作廢,另外你在程序里面也可以clear JCS cache

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品视频自拍 | 免费毛片观看 | 小雪奶水翁胀公吸小说最新章节 | v片在线看| 国产精品一区二区三区在线播放 | 精品一区二区电影 | 免费国产视频大全入口 | 亚洲国产综合在线观看 | 国产免费看 | 欧美视频在线一区二区三区 | av免费在线观看av | 成人免费看片a | 日本欧美一区二区三区在线播 | 极品五月天| 成人网在线观看 | 香蕉秀| 黄色片免费看网站 | 美女视频黄视大全视频免费网址 | 成人超碰97| 亚洲成人入口 | 国产亚洲精品成人 | 亚洲片在线 | 亚洲综合网站 | 孕妇体内谢精满日本电影 | 一级α片免费看刺激高潮视频 | 久久久久成人免费 | 久久91久久久久麻豆精品 | 91午夜免费视频 | 性欧美性欧美 | 国产流白浆高潮在线观看 | 成人一区二区在线观看视频 | 一级毛片播放 | 免费a级毛片大学生免费观看 | bt 自拍 另类 综合 欧美 | 一级黄色片在线看 | 七首小情歌泰剧在线播放 | 女人裸体让男人桶全过程 | 日韩欧美精品电影 | 免费久久久久 | 动漫孕妇被羞羞视频 | 欧美人一级淫片a免费播放 久久久久久久久91 国产99久久久久久免费看 |