Hibernate 性能优化之抓取策略
2015-01-13 22:30
267 查看
fetch 抓取策略
前提条件:必须是一个对象操作其关联对象。
1、 根据一的一方加载多的一方,在一的一方集合中,有三个值:join/select/subselect
2、根据多的一方加载一的一方, 这种情况不考虑,因为关联对象就一个数据,怎么样都可以
join 连接 【一次性的把两张表的数据全部查询出来,只发出一条sql语句】
* 在页面上既包括一的一方的数据,又包括多的一方的数据
* 数据库的数据量比较小
select 默认的查询方式 【先加载classes,当得到students的时候,才要加载students】
使用场景:
* 分两个页面显示一方的数据和多方的数据
* 数据库的数据量比较大
subselect 子查询 【通过需求分析判断,如果存在子查询,则选择该策略能提高效率】
如果把需求分析翻译成sql语句,用到了子查询,则用subselect
前提条件:必须是一个对象操作其关联对象。
1、 根据一的一方加载多的一方,在一的一方集合中,有三个值:join/select/subselect
2、根据多的一方加载一的一方, 这种情况不考虑,因为关联对象就一个数据,怎么样都可以
join 连接 【一次性的把两张表的数据全部查询出来,只发出一条sql语句】
* 在页面上既包括一的一方的数据,又包括多的一方的数据
* 数据库的数据量比较小
select 默认的查询方式 【先加载classes,当得到students的时候,才要加载students】
使用场景:
* 分两个页面显示一方的数据和多方的数据
* 数据库的数据量比较大
subselect 子查询 【通过需求分析判断,如果存在子查询,则选择该策略能提高效率】
如果把需求分析翻译成sql语句,用到了子查询,则用subselect
抓取策略 | 懒加载 | 效果 |
join | true/false/extra | 只发出一条sql语句,懒加载不起作用 |
select | true/extra | 发出n+1条数据,在遍历学生时发出 |
false | 发出n+1条数据,在加载学生集合时发出 | |
subString | true/extra | 发出2条数据,在遍历学生时发出 |
false | 发出2条数据,在加载学生集合时发出 |
相关文章推荐
- 【Hibernate】Hibernate性能优化之延迟加载与抓取策略
- Hibernate 的性能优化的时候碰到了"抓取策略",有四种
- Hibernate性能优化之抓取策略和调用存储过程
- hibernate复习(1)性能优化之抓取策略
- 【Hibernate温习】性能优化之抓取策略
- hibernate之优化抓取(选择抓取策略之批量预抓取数据--实例1)
- hibernate之优化抓取(选择抓取策略之通过联结即时抓取--实例1)
- Hibernate 优化技术之抓取策略(Fetching strategies)
- Hibernate性能优化策略(一)
- hibernate之优化抓取(选择抓取策略之批量预抓取数据--实例2)
- Hibernate性能优化策略
- hibernate之优化抓取(选择抓取策略之通过子查询预抓取集合--实例)
- Hibernate之性能优化策略
- Hibernate性能优化策略
- Hibernate的性能分析--懒加载、抓取策略、缓存策略
- Hibernate性能优化策略
- hibernate之优化抓取(选择抓取策略之通过联结即时抓取)
- Hibernate性能优化策略(一)
- Hibernate性能优化策略(二)
- hibernate优化(一):抓取策略