gpt4 book ai didi

java - 如何使用 JPA 2 和 QueryDSL 高效地获取数千条数据库记录?

转载 作者:行者123 更新时间:2023-12-01 20:21:49 25 4
gpt4 key购买 nike

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

public List<EntryEntity> getEntries() {

QEntryEntity qEntryEntity = QEntryEntity.entryEntity;

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

最佳答案

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

CREATE INDEX solve_all_problems ON entry_entity (name);

这种方法效果很好,因为索引会预先排序所有数据,因为它是一种有序数据结构,因此当您运行像现在这样的查询时,数据库不再需要执行任何排序工作。 Use-the-index-luke has a nice explanation on this topic .

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

关于java - 如何使用 JPA 2 和 QueryDSL 高效地获取数千条数据库记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44584430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com