0

我有一个使用 objectify 存储的大对象。我需要这些对象的列表,其中仅填充了属性的子集。如何才能做到这一点?

4

2 回答 2

2

App Engine 将实体存储和检索为编码的协议缓冲区。底层基础设施无法仅存储、更新或检索实体的一部分,因此没有必要使用库来执行此操作 - 因此 Objectify 与其他库一样,不这样做。如果您经常只需要访问实体的一部分,请将这些字段拆分为单独的实体。

于 2011-06-28T02:00:30.533 回答
0

在 noSql 数据库中将实体一分为二并不是一个好主意:当您需要读取条目列表时,您将不得不执行 n 次请求以获取列表的第二部分(如果您的数据被拆分为 nxm更多实体)。这自然是由于 noSql 数据库中没有可能的连接。

可以做的是“缓存”:在另一个实体中复制所需的子集以获得最大的性能。它的缺点是必须在主实体的持久性上写入两次(如果子集的字段已更改)。

我通常做的是/** OPTIMIZE xxxx */在需要读取一个子集的类上写一个注释,并在我需要更多性能时返回它。

于 2013-04-05T16:18:32.143 回答