Mybatis缓存

缓存:为数据库的查询进行缓存,是减少数据库压力的主要捷径,官方介绍主要有一级缓存和二级缓存,下面简单介绍这两种缓存的区别。

一级缓存:session级别缓存,作用于当前会话。

 特点:1.一级缓存默认开启,并且无法关闭。2.作用域是session,一次openSession( )后,如果相同的statement和相同的参数,则不进行查询而是从缓存命中并且返回,如果没有命中则查询数据库。3.任何的增删改都会导致缓存被清空。4.缓存使用Least Recently Used(LRU,最近最少使用的)算法来收回。

 

 二级缓存:SessionFactory级别缓存,作用于整个SessionFactory,多个会话之间共享缓存。

特点:1. 二级缓存需要手动开启,开启的方式是在Mapper.xml中添加<cache/>。2.二级缓存作用域是整个SessionFactory,如果namespace,statement,和sql参数一样,则缓存命中。

它的全局开关:cacheEnabled:默认打开的,如果关闭,所有的Mapper的二级缓存都会失效,默认是打开的。

 

下面着重介绍二级缓存的其它配置:

<cache
    eviction="FIFO"
    flushInterval="60000"
    size="512"
    readonly="true"
/>

官方是这样介绍的:

 

posted on 2018-09-11 12:00  lichangyun  阅读(99)  评论(0编辑  收藏  举报