【java】itoo项目实战之大数据查询之使用 new map 优化hibernate之级联查询
来源:互联网 发布:知盈医学课堂下载安装 编辑:程序博客网 时间:2024/06/05 08:14
在我的上一篇博客《【java】itoo项目实战之hibernate懒加载优化性能》中,我曾提到过学生数据有2万条,查询数据十分的慢,这是让人很受不了的事情,看着页面进度条一直转着圈圈,那种着急的感觉真的没法形容。最开始考虑着使用lazy来优化,因为前台框架的原因,lazy 优化并没有起到什么左右,后来就想着有select new map优化。我先来画画关于查询学生的级联树
这个树的意思就是查询学生的时候它的深度是4级。
在没有优化之前,使用的是hibernate的hql语句:From Student where isDelete =?执行语句的时候,会发出467条语句打印到控制台上,打的满屏都是,看控制台的时候,看着就感觉头晕。
优化的时候,选择用selectnew map进行优化,语句如下:
select newmap(S.id as id, S.name as name,S.comment as comment,S.remark asremark,S.accountAddress as accountAddress,S.code as code,S.email asemail,S.entranceDate as entranceDate,S.graduateSchool asgraduateSchool,S.identityCardID as identityCardID,S.classes.className asclassName,S.classes.institution.institutionName asinstitutionName,S.classes.institution.parentInstitution.institutionName asparentInstitution,S.classes.institution.schoolLevel.levelName aslevelName,S.classes.institution.id as institutionId,S.professional.professionalCodeas professionalCode) from Student S where S.isDelete =:isDelete
在打印语句的时候是1条。看控制台打印出来的结果还是挺舒服的。
但是他们的时间差如下:
从上表中可以看出,时间差得还是挺多的。在这里我有些事想不明白:
1.使用new map查询的时候,虽然只打印一条语句,它需要进行全表扫描,查询的次数并不少,而hibernate的hql语句把每次查询的语句都打印出来了。但是它的查询时间相对new map来说,为什么会变长呢?
2.hibernate的hql语句级联查询时间过长的原因会不会跟hibernate的缓存有关系?每次查询结果都需要放到1,2级缓存中。
3.关于hibernate的查询语句这样设计的原因是什么,当初hibernate的大牛们设计的时候,是处于什么考虑的?
以上的三个问题我目前没有找到相关的资料来解答,如果哪位看到了,可以相互讨论一下.
- 【java】itoo项目实战之大数据查询之使用 new map 优化hibernate之级联查询
- 【java】itoo项目实战之百万数据查询优化收集与实践
- 【java】itoo项目实战之hibernate 懒加载优化性能
- 【java】itoo项目实战之hibernate 批量保存优化
- 【java】itoo项目实战之优化后具体代码
- 【java】itoo项目实战之SpringMVC+EasyUI_HelloWorld
- 【java】itoo项目实战之常见问题一
- 【java】itoo项目实战之常见问题二
- 【java】itoo项目实战之常见问题三
- 【java】itoo项目实战之常被忽视的性能优化
- 【java】itoo项目实战之EJB中的RMI框架
- 数据查询优化之使用索引
- MySQL大数据高并发处理之-查询的优化
- MySQL大数据高并发处理之-查询的优化
- MySQL大数据高并发处理之-查询的优化
- MySQL大数据高并发处理之-查询的优化
- ITOO项目之Memcached
- SQL优化之百万数据查询优化
- 链串的基本运算
- 互联网秒杀设计
- JAVA 并发编程-基于线程池设计的ScheduledExecutor(八)
- 欢迎使用CSDN-markdown编辑器
- ftp文件夹错误:windows无法访问此文件夹,请确保输入的文件名是否正确,并且您有权访问此文件
- 【java】itoo项目实战之大数据查询之使用 new map 优化hibernate之级联查询
- 再回南京-901
- jQuery中queue和dequeue的用法
- XML文件与等价类
- 这不是教程
- android内核实验
- 课程笔记 12:数据结构(清华) 二叉树-节点
- Ubuntu14.04.2中文语言支持与输入法设置
- 清早起来,发现bzoj账号突然就没权限了