Mybatis一级缓存知识汇总

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-02-07 20:11 被阅读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常见面试题

    相关文章

      网友评论

        本文标题:Mybatis一级缓存知识汇总

        本文链接:https://www.haomeiwen.com/subject/gtcktltx.html