Hibernate缓存策略
2017-04-10 本文已影响0人
曹达兴
缓存是指为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能的一种策略
就是指如何更快速地去检索数据库
ORM框架访问数据库的效率直接影响应用程序的运行速度,提升和优化ORM框架的执行效率至关重要
Hibernate的缓存是提升和优化Hibernate执行效率的重要手段,所以学会Hibernate缓存的配置和使用是优化的关键
1、Hibernate一级缓存又称为"Session缓存"、"会话级缓存"
2、通过Session从数据库查询实体时会把实体在内存中存储起来,下一次查询同一实体时不再从数据库中获取,而从内存中获取,这就是缓存
3、一级缓存的生命周期和Session相同;Session销毁,它也销毁。
4、一级缓存中的数据可适用范围在当前会话之内。
一级缓存无法取消
evict():用于将某个对象从Session的一级缓存中清除
clear():用于将一级缓存中的所用对象全部清除
query.list()和query.iterate()区别:
list()直接发送sql语句,查询数据库;
iterate()发送sql语句,从数据库取出id,然后先从缓存中根据id查找对应信息,
有就返回结果,没有就根据id发送sql语句,查询数据库。
二级缓存又称为"全局缓存"、"应用级缓存"
二级缓存中的数据可适用范围是当前应用的所有会话(与sessionFactory相关)
在通常情况下会将具有以下特征的数据放入到二级缓存:
很少被修改的数据
不是很重要的数据,允许出现偶尔并发的数据
不会被并发访问的数据
参考数据