mybatis一级缓存内存占用过大的问题
发布网友
发布时间:2022-08-15 08:13
我来回答
共1个回答
热心网友
时间:2023-09-14 07:37
内存占用过大可以通过flushCache="true"或者where <随机数>=<随机数>去除MyBatis的一级缓存来解决。
1、一级缓存是SqlSession级别的缓存 —— 它是各自独立的。
在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。
不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。
2、二级缓存是mapper级别的缓存 —— 它是多个 SqlSession 共享的。
多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。