gpt4 book ai didi

mongodb - Morphia 在性能方面 fetch 和 asList 之间有区别吗

转载 作者:可可西里 更新时间:2023-11-01 09:58:15 26 4
gpt4 key购买 nike

我们正在使用 morphia 0.99 和 java 驱动程序 2.7.3 我想了解使用 fetch 逐条获取记录和通过 asList 检索结果之间有什么区别(假设有足够的内存通过 asList 检索记录)。

我们遍历一个大的集合,在使用fetch的时候,在fetch操作的过程中,有时会在服务器上遇到cursor not found异常,所以我需要执行另一个命令来继续,这可能是什么原因?

1-)fetch the record 
2-)do some calculation on it
3-)+save it back to database again
4-)fetch another record and repeat the steps until there isn't any more records.

那么哪个会更快?使用 asList 一条一条地获取记录或检索大量结果,或者使用 morphia 实现它们之间没有任何区别吗?

感谢您的回答

最佳答案

据我所知,fetch() 从数据库中流式传输结果,而 asList() 会将所有查询结果加载到内存中。因此它们都将获得与查询匹配的每个对象,但是 asList() 会将它们全部加载到内存中,而 fetch() 则由您自行决定。

对于您的用例,它在 CPU 方面都不会更快,但 fetch() 应该使用更少的内存,并且在您有大量数据库记录的情况下不会崩溃。

关于mongodb - Morphia 在性能方面 fetch 和 asList 之间有区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14062251/

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