编程语言爱好者Java服务器端编程JVM · Java虚拟机原理 · JVM上语言·框架· 生态系统

Mybatis一级缓存知识汇总

2021-02-07  本文已影响0人  迦叶_金色的人生_荣耀而又辉煌

上一篇 <<<sqlSession.selectOne底层实现原理
下一篇 >>>Mybatis二级缓存知识汇总


1.mybatis一级缓存底层是如何实现的

一级缓存使用了PerpetualCache,内置hashmap,以namespace和sql语句以及参数等信息作为key存储的。该缓存是本地缓存,存放在内存中,session关闭后自动消失,不共享。

2.PerpetualCache的作用

PerpetualCache是我们的一级缓存,以参数和sql语句等作为key,存储在本地内存中,当有增删改和session关闭的时候都会清空。
能减少数据库的请求,加快访问速度。

3.mybaytis一级缓存存在哪些问题

a、线程不安全
b、集群的时候会产生脏读

4.如何禁止Mybatis一级缓存

方案1 在sql语句上 随机生成 不同的参数 存在缺点:map集合可能爆 内存溢出的问题
方案2 开启二级缓存
方案3 使用sqlSession强制清除缓存
方案4 创建新的sqlSession连接。


推荐阅读:
<<<Mybatis的整体执行原理图解
<<<SqlSessionFactory的创建过程原理
<<<SqlSession的创建过程
<<<sqlSession如何获得具体的Mapper接口信息
<<<userMapper.getUser(1);底层实现原理
<<<sqlSession.selectOne底层实现原理
<<<Mybatis二级缓存知识汇总
<<<Springboot整合Mybatis二级缓存
<<<Mybatis常见面试题

上一篇下一篇

猜你喜欢

热点阅读