1

我有几个实体,其属性编号在 40 到 50 之间。所有这些属性都未编入索引。这些实体是更大的实体组树结构的一部分,并且总是通过使用它们的键来检索。没有任何属性(除了 key 属性)被索引。我正在使用 Objectify 来处理 BigTable 上的实体。

我想知道在从 BigTable 读取或写入具有大量属性的实体时是否会对性能产生任何影响。

由于这些大型实体仅通过它们的键获取,从不参与任何查询,我想知道是否应该序列化实体 pojo 并存储为 blob。在 Objectify 中使用 @Serialized 注释非常简单。我知道通过序列化我的实体并将其存储为 blob,我使 blob 对任何其他程序或非 Java 代码完全不透明,但这不是问题。

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

4

2 回答 2

3

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

我有最多 25 个属性的实体,我几乎在所有请求中都通过密钥获取它们。性能差异对我来说可以忽略不计。几乎没有 +- 1 毫秒。性能问题通常发生在查询部分。未编入索引的属性的数量在性能上不会很重要。而索引属性会由于索引的修改而显着延迟放置。

如果必须,如果您不打算一次需要它们,您可以将财产分成多张桌子。

于 2010-07-09T07:54:18.457 回答
2

纯粹根据我对它的工作原理知之甚少,我会说拥有一堆未索引的属性与将整个事物序列化并没有什么不同。

于 2010-08-04T19:11:07.433 回答