1.啥是延迟加载,啥是立即加载,为啥要延迟加载呢?
问题:
在一对多中,当我们有一个用户,它有200个账户;
1. 在查询用户的时候,要不要把他关联的账户全部查出来呢?
在查询用户时,用户的账户信息应该是,啥时候用啥时候查询。 而不是一查用户,就把他的账户信息加载。(延迟加载,在真正使用数据时才发起查询,按需加载)
2.在查询账户的时候,要不要把关联的用户找出来呢?
在查询账户时,账户所属的信息应该时随着账户一起查询出来。不查出来,怎么知道账户的主人是谁 (立即加载,不管用不用只要一调用方法就立刻查询)
2.延迟加载使用情况?
一对多,多对多:通常情况下我们都是采用延迟加载。
多对一,一对一:通常情况下都是采用立即加载。
3.优点和缺点?
延迟加载:
就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载.
**好处:**先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速
度要快。
坏处:
因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗
时间,所以可能造成用户等待时间变长,造成用户体验下降。
4.延迟加载结果对比
配置文件:
主配置文件开启延迟策略:
不进行遍历就不会有延迟加载效果: