首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >优化Hibernate session.createQuery().list();

优化Hibernate session.createQuery().list();
EN

Stack Overflow用户
提问于 2013-10-05 17:22:10
回答 2查看 1.8K关注 0票数 1

我们有一个包含12万行的User表(MySQL)

代码语言:javascript
运行
复制
List<User> users = session.createQuery("from User").list();

这个hibernate查询大约需要6到9秒才能执行。我们怎么才能优化这个呢?MySQL是瓶颈吗?或者.list()通常都这么慢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-05 17:27:23

当然,这很慢,因为查询执行整个表扫描。您应该加入与它相关的其他对象,包括查询的where子句,查询可以更改为返回有限数量的记录或使用条件API和投影。

票数 1
EN

Stack Overflow用户

发布于 2013-10-05 17:25:16

对查询使用分页。您不应该一次调用所有行。您可以设置结果的第一个位置和最大结果。例如,如果您希望读取前100个结果,请将查询更改如下:

代码语言:javascript
运行
复制
Query q=session.createQuery("from User");
q.setFirstResult(fistRes);// this will variable
q.setMaxResults(maxRes);// this will also be variable as parameter.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19200551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档