Mybatis的延迟加载
2016-07-19 09:40
225 查看
1)延迟加载:
先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。
resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 延迟加载的属性:fetchType="lazy"
2)缓存及设置。
二级缓存是针对namespace下的缓存,开启mapper下的二级缓存:
<cache/>useCache配置 在statement中设置useCache=false可以禁用当前select语句的二级缓存,即每次查询都会发出sql去查询,默认情况是true,即该sql使用二级缓存。
<selectid="findOrderListResultMap" resultMap="ordersUserMap"useCache="false"> 。
总结:针对每次查询都需要最新的数据sql,要设置成useCache=false,禁用二级缓存。
1.一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。
2. 二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存储,不同在于其存储作用域为 Mapper(Namespace),并且可自定义存储源,如 Ehcache。
3. 对于缓存数据更新机制,当某一个作用域(一级缓存Session/二级缓存Namespaces)的进行了 C/U/D 操作后,默认该作用域下所有 select 中的缓存将被clear。
先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。
resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 延迟加载的属性:fetchType="lazy"
2)缓存及设置。
二级缓存是针对namespace下的缓存,开启mapper下的二级缓存:
<cache/>useCache配置 在statement中设置useCache=false可以禁用当前select语句的二级缓存,即每次查询都会发出sql去查询,默认情况是true,即该sql使用二级缓存。
<selectid="findOrderListResultMap" resultMap="ordersUserMap"useCache="false"> 。
总结:针对每次查询都需要最新的数据sql,要设置成useCache=false,禁用二级缓存。
1.一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。
2. 二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存储,不同在于其存储作用域为 Mapper(Namespace),并且可自定义存储源,如 Ehcache。
3. 对于缓存数据更新机制,当某一个作用域(一级缓存Session/二级缓存Namespaces)的进行了 C/U/D 操作后,默认该作用域下所有 select 中的缓存将被clear。
相关文章推荐
- APUE 5-13 mkstemp函数的应用
- Spring 各jar包作用及依赖关系
- 网易2016 实习研发工程师编程题
- CentOS 6.5 vsftp搭建 解决root用户无法登陆ftp传输文件的问题
- 2. PHP 获取图像信息 getimagesize 函数
- -webkit-appearance: none;去处select默认小箭头样式
- opencv-图像对比度、亮度值调整
- Mysql自学笔记三
- vm.dirty_background_ratio and vm.dirty_ratio
- Rstudio代码的快捷键
- chmod命令
- 带查询条件的Mybatis分页的实现
- DMA传输详解
- Python操作Mysql数据库
- [转]jsonp详解
- oracle客户端可以连接但cmd连不上
- 关系型数据库操作
- ZooKeeper - Perl bindings for Apache ZooKeeper Perl绑定用于 Apache ZooKeeper
- java 99乘法表
- Linux查看CPU型号及内存频率及其它信息与清理内存的命令