hibernate一级缓存、二级缓存

     hibernate缓存是指为了下降应用程序对物理数据源访问的次数,从而提升应用程序的运行性能的一种策略。并非指计算机内存或者cpu的一二级缓存。 ORM框架访问数据库的效率直接影响应用程序的运行速度,提高和优化orm框架的执行效率相当重要。hibernate缓存是提高和优化hibernate执行效率的重要手段。sql

    一级缓存代码总结数据库

     1,同一个session两次查询同一个对象,只输出一个sql语句,证实默认使用缓存了;缓存

     2,在不一样的session中屡次查询同一个对象,会执行屡次数据库查询;session

     3,在一级缓存中,每个相同的对象都具备惟一的OID;一级缓存又叫session级缓存,或者会话级的缓存。生命周期等同session;并发

     4,一级缓存是默认开启的,而且没法取消。管理一级缓存能够经过session.evict(obj),session.clear()方法清除一个或所有对象;框架

     5,query.list()方法和query.iterator()方法不会使用一级缓存,可是iterator方法获得对象ID后,获得对象的其余属性会首先使用一级缓存,获得对象ID不使用一级缓存,是向数据库发送的sql语句。ide

    二级缓存配置总结:性能

    1,二级缓存要用到commons-logging-1**.jar和ehcache.jar,ehcache.xml配置文件放在项目路径下;优化

    2,hibernate.cfg.xml中,指定二级缓存的外部实现类,要配置hibernate

<property name="cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>

    3,哪一个实体类要用到二级缓存,就在它的配置文件的class标签中添加<cache usage="read-only"/>,使该类的二级缓存生效,注解需再查找,cache标签还有另外的2个属性include等;

    4,二级缓存又称为全局缓存,应用级缓存。适用范围是当前应用的全部会话。二级缓存是可插播式缓存,默认是EHChache,还支持其余二级缓存组件,如Hashtable、OSChache等;

    5,二级缓存存放不多被修改的数据,不是很重要,容许偶尔并发,不会频繁并发的参考数据。

    总结对比:(使用慕课网的一张图片,可参考慕课网相关视频)

   

相关文章
相关标签/搜索