Hibernate性能优化

Hibernate性能优化提高
1. 缓存(Hibernate默认会用到缓存,用得好就能大大提高性能,用得不好就会影响到效率;缓存其实就是数据库数据在内存中的一个临时容器,将查询过得数据暂时放在这个容器中,下次如果还是查询一样的,就直接在该容器中取得,就不用再去数据库里查询了,这样间接性的提高了效率。):
a)一级缓存;
i.即在当前事务范围内的数据缓存;
ii.就Hibernate 来讲,(一级缓存)事务级缓存是基于Session的声明周期实现的;
b)二级(应用级)缓存;
i.此缓存可由多个事务共享;
ii.在Hibernate 中,应用级缓存由Session Factory实现;
iii.  使用第三方缓存组件:EHcache (易 H  kei  奇)
c)分布式缓存;
i.即在多个应用实例,多个JVM间共享的缓存策略;

2. get()和load()的区别:
a)查询没有的数据,get()会返回null,load()会报错,抛出找不到的异常;
b)Load()的效率比get()的效率高;
c)Get()直接去数据库里面找,load()会先去混存的临时的容器里去找,没有就会去找代理对象,在没有才会去数据库里进行查询,查询后只返回一个代理对象,而get()是一定要返回一个真实对象;
3.混存同步策略:
a)Read-only :只读,对于不会发生改变的数据可使用;不会进行更新
b)Nonstrict-read-write 
c)Read-write:严格的读写缓存;
d)Transactional:事务性缓存;
4.延迟加载:
a)在有关联的持久类对象中,对一个对象进行的查询也会对另一个对象进行查询;
b)所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作;
c)Hibernate 3.X的lazy (延迟加载)默认值是true,需要注意;
5.Hibernate 的悲观和乐观锁:
a)Hibernate支持两种锁机制:
i.“悲观锁(Pessimistic Locking)”
ii.“乐观锁(Optimistic Locking)”
b) 数据库里面用到的所有锁都是“悲观锁”;
c) 从效率上讲“悲观锁”的效率不高;
d) “乐观锁”在数据中有一种机制,多了一列就是版本号,乐观锁就是靠版本数据机制实现的;当对数据进行不断的操作时,乐观锁也会不断的更新;更新之前,它会先检查数据库里的版本号,是否发生过改变,如果发生了改变,那么乐观锁的操作将会无效; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值