mybatis的userCache和flushCache

来源:互联网 发布:手机输入法软件下载 编辑:程序博客网 时间:2024/06/10 12:47
在MyBatis中有flushCache、useCache这两个配置属性,分为下面几种情况:
(1)当为select语句时:
flushCache默认为false,表示任何时候语句被调用,都不会去清空本地缓存和二级缓存。
useCache默认为true,表示会将本条语句的结果进行二级缓存。
(2)当为insert、update、delete语句时:
flushCache默认为true,表示任何时候语句被调用,都会导致本地缓存和二级缓存被清空。

useCache属性在该情况下没有。

flushCache为true的时候,每次调用都清理缓存,这样等于你每次调用都要重新读数据库和写缓存,自然很慢;

flushCache为false的时候,每次调用不清缓存,除了第一次调用较慢,后面都会很快。

flushCache:如果设成true,当语句调用时一级二级缓存都会被清理掉。select语句默认是false

useCache:如果设成true,语句调用的结果会缓存在二级缓存里。select语句默认是true

一般来讲,查询的时候会把useCache设成true,当然可能有些结果变化很频繁的查询可以设成false,因为这种做缓存效果不大。flushCache一般会设成false,因为查询不会改变数据库的结果,不需要去更新缓存

相反,我们做update或delete的时候,flushCache就要设成true了,因为可能会改变数据库的记录导致缓存失效。同时useCache就没必要设成true了,因为update或delete的结果缓存没啥意义

转载自:http://blog.csdn.net/danran0223/article/details/54176788

原创粉丝点击