首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JPA2和QueryDSL高效地获取数以千计的数据库记录?

如何使用JPA2和QueryDSL高效地获取数以千计的数据库记录?
EN

Stack Overflow用户
提问于 2017-06-16 16:26:49
回答 1查看 330关注 0票数 0

目前我有一个实现,可以在10-12秒内获取10000条记录。这个查询的性能可以提高吗?如何提高?以下是我基于QueryDSL和JPA2的代码片段。

代码语言:javascript
复制
public List<EntryEntity> getEntries() {

QEntryEntity qEntryEntity = QEntryEntity.entryEntity;

return queryfactory.selectFrom(qEntryEntity).orderBy(qEntryEntity.name.asc()).fetch();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-16 17:52:09

您可能缺少该NAME列上的索引:

代码语言:javascript
复制
CREATE INDEX solve_all_problems ON entry_entity (name);

这很有效,因为索引对所有数据进行了预排序,因为它是有序的数据结构,所以当您运行像您现在正在运行的查询时,数据库不再需要做任何排序工作。Use-the-index-luke has a nice explanation on this topic

附注:在添加索引时要小心。虽然它们极大地提高了读取操作的速度,但每个索引都会减慢对该列的写入操作。每个索引都是一种权衡。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44584430

复制
相关文章

相似问题

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