gpt4 book ai didi

grails - 如何有效地加载数百万个域对象

转载 作者:行者123 更新时间:2023-12-02 13:56:38 24 4
gpt4 key购买 nike

我面临一个问题,因为我在一个表中有数百万个域对象。几分钟后,我尝试使用Domain.findAllBy()获取所有对象时,出现OutOfMemoryError。。我想知道是否存在一种有效的方式来加载所有对象而又不会再次出现此错误吗?

我应该分页结果并仅加载必需的内容吗?

请告诉我我是否也做错了..

谢谢您的帮助和新年快乐;)

最佳答案

真正的解决方案是不要试图一次将所有域对象都检索到内存中。无论您购买多少内存,都无法保证域对象的增长不会比RAM快。

接下来,即使您可以将所有对象存储在内存中,也要花费很短的时间来检索所有对象。您想要对对象进行的任何操作-修改属性,调用方法-都将花费更长的时间。

我无法想象人类用户想要在网页上看到数百万个业务对象的情况-即使通过它们进行分页都没有意义。

因此,如果要检索对象以对其进行修改,请在数据库中进行操作。如果要检索它们以在业务对象上运行方法,请使用分页,或考虑是否可以将该方法实现为数据库调用。如果要检索它们以进行显示,则需要允许用户过滤其请求并提供分页。

关于grails - 如何有效地加载数百万个域对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20868122/

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