java实体。列表()休眠性能
我有一个应用程序,我继承了一个公认糟糕的数据模型。目前,我正试着给它贴上绷带
我们注意到,随着越来越多的数据加载到系统中,性能越来越差,即使是在应该处理查询的数据子集(即一次一条记录)的操作上也是如此
我们使用的是New Relic,我注意到我们的请求时间的很大一部分都花在了使用条件查询的事务上。然而,我们的实体中甚至没有一个有list()
方法。我的理解是,条件查询被转换为SQL,查询实际上发生在数据库引擎上,而不是列出所有实体,然后查询Java对象。准确吗?你知道《新遗址》中的list()
方法是什么吗
我想说清楚,我意识到在一张大桌子上列出全部或select * ...
需要一段时间。问题是我们使用条件查询来查询表,而不是列出所有记录。我的问题是:《新遗址》中对Entity.list()
的引用来自哪里
# 1 楼答案
列表中的另一个影响是关系。如果你有 实体之间的一个或多个关系,hibernate将加载 如果关系标记为“渴望”,则为相关实体,即使 懒惰,它仍然需要一些额外的信息
如果确实要获取列表,请尝试基于数据创建视图 并制作与该视图匹配的实体,它可能会有所改进 性能有点差