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常见面试题