立即加载EAGER和延迟加载LAZY
- 延迟加载和立即加载的区别:
- 顾名思义,立即加载就是在sql语句执行的时候直接从数据库取出数据,而延迟加载就是虽然sql语句执行,但是只有在用到相应的数据的时候才从数据库加载出来。
- 什么时候用延迟加载和立即加载:
- 延迟加载多用于查询一对多的时候,立即加载多用于查询一对一的时候,但并不绝对。
- 为什么要用延迟加载:
- 使用延迟加载的目的是为了减少系统资源的消耗,例如查询课程和选择此课程的学生的时候,当一个课程中只有几十个学生的时候,我们使用延迟加载和立即加载对系统资源的消耗并不明显,但是当一个课程有几千万个学生的时候,同时我们并不是立刻使用所有学生的信息。我们如果使用立即加载就会造成大量浪费系统资源,此时使用延迟加载的随用随取模式就会有很大的优势。