我有一个使用 objectify 存储的大对象。我需要这些对象的列表,其中仅填充了属性的子集。如何才能做到这一点?
问问题
716 次
2 回答
2
App Engine 将实体存储和检索为编码的协议缓冲区。底层基础设施无法仅存储、更新或检索实体的一部分,因此没有必要使用库来执行此操作 - 因此 Objectify 与其他库一样,不这样做。如果您经常只需要访问实体的一部分,请将这些字段拆分为单独的实体。
于 2011-06-28T02:00:30.533 回答
0
在 noSql 数据库中将实体一分为二并不是一个好主意:当您需要读取条目列表时,您将不得不执行 n 次请求以获取列表的第二部分(如果您的数据被拆分为 nxm更多实体)。这自然是由于 noSql 数据库中没有可能的连接。
可以做的是“缓存”:在另一个实体中复制所需的子集以获得最大的性能。它的缺点是必须在主实体的持久性上写入两次(如果子集的字段已更改)。
我通常做的是/** OPTIMIZE xxxx */
在需要读取一个子集的类上写一个注释,并在我需要更多性能时返回它。
于 2013-04-05T16:18:32.143 回答