ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

mybatis缓存机制

mybatis缓存机制

一级缓存(SqlSession会话级别缓存)

默认开启,建议自行关闭。

问题:

1、大型分布式系统、小公司多实例部署同一台机器建议关闭一级缓存,产生脏读,读旧值情况比较大。

二级缓存(命名空间缓存,可以跨会话级别)

问题:

默认不开启,开发管控

1、大型分布式系统、小公司多实例部署同一台机器建议不要开启二级缓存,多表join场景下,有的表可以读到最新的值,但有的表会读到以前的缓存,同样会出现脏读场景。

经验:二级缓存性能很好,但是对开发者有一定的要求,这个要求就是在撰写mapper时候,一定要保证在命名空间里面的单表查询,一切join表场景全部避免,这样可以有效避免脏读场景。

三级缓存(SessionFactory级别缓存,跨应用)

开发自定义选择使用第三方(Redis、guava)

返回列表