为什么不建议使用mybatis二级缓存?
1 个回答
能治愈生活的良方,是保持对生活的热爱。卢璐说#### 会导致数据的脏读 MyBatis 二级缓存是以 namespace 为单位的。对于一个表的操作,可能分散在不同的 namespace 中。例如: - 在 `UserMapper.xml` 中有大多数针对 `user` 表的操作。 - 在另一个 `XXXMapper.xml` 中,也有针对 `user` 表的操作。 这会导致 `user` 表的数据在两个命名空间下出现不一致。如果在 `UserMapper.xml` 中做了刷新缓存的操作,而 `XXXMapper.xml` 中的缓存仍然有效,那么在 `XXXMapper.xml` 中针对 `user` 表的单表查询可能会返回不正确的结果。 更危险的情况是在 `XXXMapper.xml` 中做了 `insert`, `update`, `delete` 操作,这会导致 `UserMapper.xml` 中的缓存数据不再准确,进而引发数据一致性的问题。 #### 效率比较低 虽然二级缓存可以减少对数据库的访问,但它也带来了额外的维护成本。特别是在高并发场景下,缓存的管理和同步会变得复杂,可能导致性能下降。编辑于 2024-01-25 00:25 •IP属地 宁夏举报评论收藏
公众号进入网站体验更佳

