延迟加载 | 学习笔记

简介: 快速学习延迟加载

开发者学堂课程【Java 面试疑难点串讲5:系统架构及项目设计延迟加载】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/28/detail/625


延迟加载


内容简介:

一、延迟加载的常见问题

二、延迟加载的注意事项

 

一、延迟加载的常见问题

对于这种延迟加载问题,实际上属于 Spring + Hibemate 时代的产物,这个是Hibemate 比较鸡肋的功能。

之所以说它鸡肋主要是因为有如下问题:

1、几乎所有的配置都需要打开延迟加载,否则整个的程序性能会收到严重的影响;

2、有可能会产生严重的“1+N” 查询,例如:现在一个分类下有多个新闻信息,那么现在很明显,如果此时没有打开延迟加载,就意味着如果现在有10个分类的数据,那么就会自动查询10次的子表数据,那么如果每个子的字段包含有3000篇新闻,那么最终产生的结果就是3000W条数据,而且这些数据不是直接去使用。

3、当 Spring 与 Hibemate 结合的时候就会出现有一个页面数据延迟打开的问题,也就是说希望 Session 一直到页面后才进行关闭。

 

二、注意事项

将 Hibemate 中的 Sssion 延迟到页面后进行关闭,那么对于整个的事务处理是

常麻烦的,而且这种操作还需要进行一个 OpenSessionInView 过滤器的配置。

正是因为这样的情况,在实际的开发过程之中,针对于需要进行显示的数据.

例如:在查询一个雇员的时候,希望取得雇员对应的部门数据,而且很确定这个雇员只对应有一个部门的信息,那么就建议在业务层里面,取得完雇员信息之后,直接再使用 getter 方法查询该雇员所对应的部门的数据信息。

在业务层的控制是因为所有的 AOP 的切入点都是在业务层上完成的。随后到

整个页面之中就可以直接在 JSP 页面里面利用 emp 对象里面利用 emp 对象“${emp.dept.dname} ”。

对于程序的性能,基本上都出现在数据库上,而如果说用户很多,问题也会

现在数据库上,在开发的时候为了保证数据库的操作性能。

最好的做法就是:保证只是查询到所需要的数据,不需要的数据绝对不要去查,因为查询会浪费磁盘的性能,而查询的结果会占用内存,而 CPU 是通过内存读取数据的,所以如果数据量大,或者控制不合理,那么直接导致系统变慢。

相关文章
|
5月前
|
Web App开发 算法 前端开发
技术笔记:Lazyload延迟加载效果
技术笔记:Lazyload延迟加载效果
|
JavaScript 前端开发 UED
延迟加载是什么,怎么使用?
延迟加载是什么,怎么使用?
95 0
|
SQL
延迟加载的底层原理知道吗?
延迟加载的底层原理知道吗?
96 0
|
Java 数据库连接 数据库
【MyBatis】学习笔记13:延迟加载(懒加载)
【MyBatis】学习笔记13:延迟加载(懒加载)
148 0
【MyBatis】学习笔记13:延迟加载(懒加载)
|
存储 SQL Java
hibernate学习笔记之二(映射关系与懒加载)
hibernate学习笔记之二(映射关系与懒加载)
hibernate学习笔记之二(映射关系与懒加载)
|
SQL Java 数据库连接
MyBatis的延迟加载(十四)下
MyBatis的延迟加载(十四)
120 1
MyBatis的延迟加载(十四)下
|
SQL Java 数据库连接
MyBatis入门-延迟加载与立即加载
MyBatis入门-延迟加载与立即加载
269 0
MyBatis入门-延迟加载与立即加载
|
存储 SQL 缓存
Mybatis(五) 延迟加载和缓存机制(一级二级缓存)
  踏踏实实踏踏实实,开开心心,开心是一天不开心也是一天,路漫漫其修远兮。
274 0
Joomla 4中延迟加载的A-Z指南
任何基于Joomla的网站页面加载速度都非常重要。Joomla 4具有一个重要功能:LazyLoad。借助内置的图片加载插件,Joomla 4中的延迟加载在加速网站方面发挥着重要作用。在每个网站上,都使用图像使页面更具吸引力和美观,但同时也会使页面尺寸变大。在此博客文章中,我们将讨论如何在Joomla 4中使用延迟加载。
Joomla 4中延迟加载的A-Z指南