做网站的一般尺寸,wordpress虚拟资源交易平台,广州市网站建设 合优,wordpress点赞代码MyBatis是一个持久层框架#xff0c;它提供了一级缓存和二级缓存来提高数据库操作的性能。下面是一级缓存和二级缓存的区别理解、画图和知识点总结#xff1a;
一级缓存#xff1a;
一级缓存是MyBatis默认开启的缓存层#xff0c;它是SqlSession级别的缓存#xff0c;也…MyBatis是一个持久层框架它提供了一级缓存和二级缓存来提高数据库操作的性能。下面是一级缓存和二级缓存的区别理解、画图和知识点总结
一级缓存
一级缓存是MyBatis默认开启的缓存层它是SqlSession级别的缓存也就是说同一个SqlSession中的多次查询会使用同一个缓存。一级缓存是在内存中实现的它的生命周期与SqlSession相同。当SqlSession执行查询时查询的结果会被保存在一级缓存中下次再执行相同的查询语句时会直接从缓存中取结果而不需要再次访问数据库。一级缓存的失效条件包括SqlSession关闭、手动清除缓存、增删改操作等。一级缓存的范围是SqlSession级别的不同的SqlSession之间无法共享缓存。
二级缓存
二级缓存是MyBatis中的全局缓存它是mapper级别的缓存多个SqlSession可以共享同一个二级缓存。二级缓存是在SqlSessionFactory的级别实现的它的生命周期与应用程序的生命周期相同。当SqlSession执行查询时查询的结果会被保存在二级缓存中下次再执行相同的查询语句时会直接从缓存中取结果而不需要再次访问数据库。二级缓存的失效条件包括SqlSessionFactory刷新、手动清除缓存、增删改操作等。二级缓存的范围是mapper级别的同一个namespace下的mapper可以共享二级缓存不同的namespace之间无法共享缓存。使用二级缓存需要在Mapper的配置文件中配置cache标签。
总结
一级缓存是SqlSession级别的缓存二级缓存是mapper级别的缓存。一级缓存的生命周期是与SqlSession相同二级缓存的生命周期是与应用程序相同。一级缓存的范围是SqlSession级别的二级缓存的范围是mapper级别的。一级缓存的作用范围是在同一个SqlSession中二级缓存的作用范围是在多个SqlSession中。一级缓存是默认开启的而使用二级缓存需要在Mapper的配置文件中进行配置。
以下是一级缓存和二级缓存的简单示意图
------------ ----------------
| SqlSession | ----------------| DB |
| | | |
----^------- ---------------| || || || ----------------- |------- | 一级缓存 | ---------------------- ----------------------- ----------------
| SqlSessionFactory | | DB |
| | | |
----^----------------- ---------------| || || || ----------------- |------ | 二级缓存 | -------------------------