gpt4 book ai didi

java - GoogleAppEngine 上的 JDO : How to efficiently retrieve a subset of fields from a huge number of records

转载 作者:行者123 更新时间:2023-12-01 15:44:15 26 4
gpt4 key购买 nike

我面临着可扩展性的小问题。我正在使用 JDO 查询我的数据存储。我需要检索给定实体的所有键(此类键的类型为 Long)。鉴于在我的数据存储中,此类实体有 1.000.000 条记录,我需要以非常有效的方式获取它们,以便在后台任务中循环遍历该集。

哪种方法最有效?

如果我不仅需要 key ,还需要另一个字段怎么办?假设我有一个名为 TPImage 的实体:

    Long idPic; //this is my key
String title; //this is the field I want to retrieve together with the key
... // other properties

如何在单个高效查询中检索 idPic 和标题?

类似

    Query q = new Query("select idPic, title from " + TPImage.class.getName());

但效率更高?

非常感谢!

再见

最佳答案

您遇到的扩展问题是您需要所有键 - 并不是您无法足够有效地获取它们。无论您使用什么系统,这始终至少是 O(n)。

您应该批量完成工作,并使用 cursors,而不是尝试预取所有内容。有效地检索下一组结果。

如果您需要模型中的某个字段,则必须检索整个模型实例 - 它们存储为序列化 blob,因此无法仅检索一个字段。

关于java - GoogleAppEngine 上的 JDO : How to efficiently retrieve a subset of fields from a huge number of records,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7430750/

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