目前我有一个实现,可以在10-12秒内获取10000条记录。这个查询的性能可以提高吗?如何提高?以下是我基于QueryDSL和JPA2的代码片段。
public List<EntryEntity> getEntries() {
QEntryEntity qEntryEntity = QEntryEntity.entryEntity;
return queryfactory.selectFrom(qEntryEntity).orderBy(qEntryEntity.name.asc()).fetch();
}发布于 2017-06-16 17:52:09
您可能缺少该NAME列上的索引:
CREATE INDEX solve_all_problems ON entry_entity (name);这很有效,因为索引对所有数据进行了预排序,因为它是有序的数据结构,所以当您运行像您现在正在运行的查询时,数据库不再需要做任何排序工作。Use-the-index-luke has a nice explanation on this topic。
附注:在添加索引时要小心。虽然它们极大地提高了读取操作的速度,但每个索引都会减慢对该列的写入操作。每个索引都是一种权衡。
https://stackoverflow.com/questions/44584430
复制相似问题