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

淺述Hibernate性能優化

開發 后端
Hibernate性能優化的一些要點:盡量使用many-to-one,避免使用單項one-to-many、靈活使用單向one-to-many、不用一對一,使用多對一代替一對一、.配置對象緩存,不使用集合緩存等。

Hibernate性能優化有很多方面,在此我們總結了Hibernate性能優化的一些要點,如下:

1.盡量使用many-to-one,避免使用單項one-to-many

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

3.不用一對一,使用多對一代替一對一

4.配置對象緩存,不使用集合緩存

5.一對多使用Bag 多對一使用Set

6.繼承使用顯示多態  HQL:from object  polymorphism="exlicit" 避免查處所有對象

7.消除大表,使用二級緩存對于上面這些,我們進行了詳細的講解。

one-to-many:使用inverse=false(default),對象的關聯關系是由parent對象來維護的,而inverse=true的情況下,一般用戶雙向多對多關聯,由子對象維護關聯關系,增加子對象的時候需要顯示:child.setParent(child)為了提高性能,應該盡量使用雙向one-to-many inverse=true,在MVC結構中的DAO接口中應該直接用Session持久化對象,避免通過關聯關系(這句話有點不理解),而在單項關系中正確使用二級緩存,則可以大幅提高以查詢為主的應用。

多對一性能問題比較少,但是要避免經典N+1問題。
通過主鍵進行關聯,相當于大表拆分小表。(這個是區分面向對象設計和面向過程設計的一個關鍵點)
list、bag、set的正確運用one-to-many:

◆使用list 需要維護Index Column字段,不能被用于雙向關聯,而且必須使用inverse=false,需要謹慎使用在某些稀有場合(基本上是不予考慮使用)

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

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

inverse=true 無法維護集合緩存(還不是很理解集合緩存和對象緩存)
OLTP類型的web應用,可以群集水平擴展,不可避免的出現數據庫瓶頸框架能降低訪問數據庫的壓力,采用緩存是衡量一個框架是否優秀的重要標準,從緩存方面看Hibernate

◆對象緩存,細顆粒度,是針對表的級別,透明化訪問,因為有不改變代碼的好處,所以是ORM提高性能的法寶

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

◆查詢緩存

***Robbin還針對大家經常出現的Hibernate vs iBatis的討論進行了一個總結:

對于OLTP應用,使用ORM框架 而OLEB應用(不確定是什么應用)***采用JDBC或者其他方法處理Hibernate傾向于細顆粒度設計,面向對象,將大表拆分為多個小表,消除冗余字段,通過二級緩存提升性能。

iBatis傾向于粗顆粒度設計,面向關系,盡量把表合并,通過Column冗余,消除關聯關系,但是iBatis沒有有效的緩存手段。

可以說我們的Hibernate性能優化總結對于使用Hibernate的開發人員有著很重要的點撥作用。

【編輯推薦】

  1. 簡述Hibernate中加載并存儲對象
  2. Hibernate傳播性持久化攻略
  3. 深入了解Hibernate自動狀態檢測
  4. 教你如何在Hibernate中實例化集合和代理
  5. Hinerbate單端關聯代理頗析
責任編輯:仲衡 來源: javaeye
相關推薦

2009-06-16 16:10:59

Hibernate性能

2010-07-15 13:52:51

TELNET連接

2010-06-29 12:17:16

SIGTRAN協議

2009-09-28 14:49:44

Hiberante映射

2010-07-06 17:05:22

PPPOE協議

2010-08-02 16:08:24

ICMP協議設置

2010-09-06 14:10:27

PPP內核

2010-07-13 14:52:21

Linux SNMP

2010-08-05 17:06:58

RIP路由協議

2010-07-12 16:58:34

LEACH協議

2009-06-06 15:37:22

Hibernate性能

2009-06-16 16:39:49

Hibernate性能

2010-09-25 14:25:29

Linux DHCP服

2010-06-24 15:02:43

FTP協議

2010-09-07 14:30:20

Linux PPPoE

2009-09-22 15:22:08

Hibernate性能

2009-09-22 17:25:41

優化Hibernate

2009-11-04 11:03:08

Oracle用戶表空間

2009-10-19 16:04:44

VB API函數

2010-05-26 18:01:32

IPv6報頭
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本午夜在线视频 | 欧美日韩国产一区二区三区 | 国产精品久久久久久久久久免费 | 国产免费福利在线 | 欧美日韩一区在线 | 91婷婷韩国欧美一区二区 | 亚洲欧美一区二区三区国产精品 | 欧美电影免费观看高清 | 狠狠狠色丁香婷婷综合久久五月 | 国产欧美一区二区三区日本久久久 | 中文日韩字幕 | 在线看av网址 | 日韩视频 中文字幕 | 日韩免费 | 色综合天天综合网国产成人网 | 天天干.com | 九九精品影院 | 日韩欧美国产一区二区三区 | 中文字幕免费观看 | 精品伊人久久 | 国产电影一区二区在线观看 | 色综网 | 色妹子综合网 | av大片| 国产亚洲成av人片在线观看桃 | 色资源站 | 日韩电影在线 | 在线一级片| 久久人人国产 | 作爱视频免费观看 | 欧美在线高清 | av影片在线 | 久久综合色综合 | 另类专区成人 | 久久y| 日本不卡免费新一二三区 | 亚洲97| 亚洲成人av| 亚洲一区二区不卡在线观看 | 91精品国产综合久久精品 | 中日字幕大片在线播放 |