日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
淺述Hibernate性能優(yōu)化

Hibernate性能優(yōu)化有很多方面,在此我們總結(jié)了Hibernate性能優(yōu)化的一些要點(diǎn),如下:

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)廬陽(yáng),10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792

1.盡量使用many-to-one,避免使用單項(xiàng)one-to-many

2.靈活使用單向one-to-many

3.不用一對(duì)一,使用多對(duì)一代替一對(duì)一

4.配置對(duì)象緩存,不使用集合緩存

5.一對(duì)多使用Bag 多對(duì)一使用Set

6.繼承使用顯示多態(tài)  HQL:from object  polymorphism="exlicit" 避免查處所有對(duì)象

7.消除大表,使用二級(jí)緩存對(duì)于上面這些,我們進(jìn)行了詳細(xì)的講解。

one-to-many:使用inverse=false(default),對(duì)象的關(guān)聯(lián)關(guān)系是由parent對(duì)象來(lái)維護(hù)的,而inverse=true的情況下,一般用戶雙向多對(duì)多關(guān)聯(lián),由子對(duì)象維護(hù)關(guān)聯(lián)關(guān)系,增加子對(duì)象的時(shí)候需要顯示:child.setParent(child)為了提高性能,應(yīng)該盡量使用雙向one-to-many inverse=true,在MVC結(jié)構(gòu)中的DAO接口中應(yīng)該直接用Session持久化對(duì)象,避免通過(guò)關(guān)聯(lián)關(guān)系(這句話有點(diǎn)不理解),而在單項(xiàng)關(guān)系中正確使用二級(jí)緩存,則可以大幅提高以查詢?yōu)橹鞯膽?yīng)用。

多對(duì)一性能問(wèn)題比較少,但是要避免經(jīng)典N(xiāo)+1問(wèn)題。
通過(guò)主鍵進(jìn)行關(guān)聯(lián),相當(dāng)于大表拆分小表。(這個(gè)是區(qū)分面向?qū)ο笤O(shè)計(jì)和面向過(guò)程設(shè)計(jì)的一個(gè)關(guān)鍵點(diǎn))
list、bag、set的正確運(yùn)用one-to-many:

◆使用list 需要維護(hù)Index Column字段,不能被用于雙向關(guān)聯(lián),而且必須使用inverse=false,需要謹(jǐn)慎使用在某些稀有場(chǎng)合(基本上是不予考慮使用)

◆bag/set在one-to-many中語(yǔ)義基本相同,推薦使用bag many-to-one:

◆bag和set不同,bag允許重復(fù)插入,建議使用set在龐大的集合分頁(yè)中應(yīng)該使用session.createFilter session.createFilter(parent.getChildren(),""),setFirstResult(0),setMaxResult(10))避免N+1 參考(http://www.javaeye.com/post/266972)
在多對(duì)一的情況下,查詢child對(duì)象,當(dāng)在頁(yè)面上顯示每個(gè)子類(lèi)的父類(lèi)對(duì)象的時(shí)候會(huì)導(dǎo)致N+1次查詢,需要采用下面的方法避免:many-to-one fetch="join|select"(該方法可能有問(wèn)題)

inverse=true 無(wú)法維護(hù)集合緩存(還不是很理解集合緩存和對(duì)象緩存)
OLTP類(lèi)型的web應(yīng)用,可以群集水平擴(kuò)展,不可避免的出現(xiàn)數(shù)據(jù)庫(kù)瓶頸框架能降低訪問(wèn)數(shù)據(jù)庫(kù)的壓力,采用緩存是衡量一個(gè)框架是否優(yōu)秀的重要標(biāo)準(zhǔn),從緩存方面看Hibernate

◆對(duì)象緩存,細(xì)顆粒度,是針對(duì)表的級(jí)別,透明化訪問(wèn),因?yàn)橛胁桓淖兇a的好處,所以是ORM提高性能的法寶

◆Hibernate是目前ORM框架中緩存性能***的框架

◆查詢緩存

***Robbin還針對(duì)大家經(jīng)常出現(xiàn)的Hibernate vs iBatis的討論進(jìn)行了一個(gè)總結(jié):

對(duì)于OLTP應(yīng)用,使用ORM框架 而OLEB應(yīng)用(不確定是什么應(yīng)用)***采用JDBC或者其他方法處理Hibernate傾向于細(xì)顆粒度設(shè)計(jì),面向?qū)ο螅瑢⒋蟊聿鸱譃槎鄠€(gè)小表,消除冗余字段,通過(guò)二級(jí)緩存提升性能。

iBatis傾向于粗顆粒度設(shè)計(jì),面向關(guān)系,盡量把表合并,通過(guò)Column冗余,消除關(guān)聯(lián)關(guān)系,但是iBatis沒(méi)有有效的緩存手段。

可以說(shuō)我們的Hibernate性能優(yōu)化總結(jié)對(duì)于使用Hibernate的開(kāi)發(fā)人員有著很重要的點(diǎn)撥作用。


當(dāng)前題目:淺述Hibernate性能優(yōu)化
URL鏈接:http://www.5511xx.com/article/cdcdiso.html