实体效果数据存储读/写性能中是否有大量属性?

问题描述:

我有几个实体的属性编号在40-50范围内。所有这些属性都是未编制索引的。这些实体是更大的实体组树结构的一部分,并且始终通过使用它们的密钥进行检索。没有任何属性(键属性除外)都被索引。我正在使用Objectify与BigTable上的实体一起工作。实体效果数据存储读/写性能中是否有大量属性?

我想知道在BigTable中读取或写入具有大量属性的实体是否存在任何性能影响。

由于这些大型实体只能通过它们的键获取,因此永远不会参与任何查询,所以我想知道是否应该序列化实体pojo并将其存储为blob。使用@Serialized注解在Objectify中完成这项操作非常简单。我明白,通过序列化我的实体并将其存储为blob,我将blob完全透明化为任何其他程序或非Java代码,但这不是问题。

我还没有对性能差异进行基准测试,但在此之前,我想知道是否有人之前做过或有任何建议/意见要分享。

总是有一些开销的属性数量。和序列化不会有多大帮助,因为它只是将处理从一个点移动到另一个点。

我有属性数量高达25的实体,我几乎在所有的请求中通过键获取它们。性能差异对我来说可以忽略不计。几乎不到+ - 1ms。性能问题通常发生在查询部件上。 未编制索引财产在性能上不会算太多。而指数化的财产可能由于指数的修改而大幅延迟投放。

如果您必须,您可以将财产分成多个表格,如果您不一次需要它们。

纯粹通过我知道它的工作原理,我会说有一大堆未索引的属性与整个串行化没有什么不同。