Mybatis缓存
Posted WCK的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis缓存相关的知识,希望对你有一定的参考价值。
mybatis缓存
1.缓存介绍
缓存是一种临时存储少量数据至内存或者是磁盘的一种技术.减少数据的加载次数,可以降低工作量,提高程序响应速度缓存的重要性是不言而喻的。
MyBatis的缓存将相同查询条件的SQL语句执行一遍后所得到的结果存在内存或者某种缓存介质当中,当下次遇到一模一样的查询SQL时候不在执行SQL与数据库交互,而是直接从缓存中获取结果,不再查询数据库,提升了性能;尤其是在查询越多、缓存命中率越高的情况下,使用缓存对性能的提高更明显。
MyBatis分为一级缓存和二级缓存,同时也可配置关于缓存设置。一级存储是SqlSession上的缓存,二级缓存是在SqlSessionFactory(namespace)上的缓存。默认情况下,MyBatis开启一级缓存,没有开启二级缓存。当数据量大的时候可以借助一些第三方缓存框架或Redis缓存来协助保存Mybatis的二级缓存数据。
2.一级缓存
一级缓存是SqlSession级缓存。只要是同一个SqlSession对象(必须是同一个)调用同一个<select>
标签相同参数值时(不同<select>
完全相同的SQL不会走同一个缓存),将直接使用缓存数据,而不会访问数据库。
重要提示:
一级缓存想要生效,必须同时满足3个条件:
- 同一个SqlSession对象。
- 同一个select标签。本质为底层同一个JDBC的Statemen对象
- 完全相同的SQL,包含SQL的参数值也必须相同
insert、de
以上是关于Mybatis缓存的主要内容,如果未能解决你的问题,请参考以下文章