2011-03-20 61 views
1

我有一个实体对象(种类)用于存储来自用户“广告”的所有信息。它包括照片的钥匙,联系信息等。 但我只需要从这些查询对象的几件事情。Google App Engine Objectify查询大对象VS分离对象(头部和身体)

使用带有Objectify的Google App Engine(Java)。

我的问题是这样的。 让实体对象仅用于查询(“标题” - 标题,价格,城市)和另一个实体对象是否适用于所有额外的未指定索引的细节更强大吗? 或者可以将所有这些放在一个实体对象中,并将其他属性标记为无索引?

回答

1

在同一类型的细节上很好,它可以帮助您免去需要额外访问数据存储区的麻烦。正如您所指出的那样,将不需要查询或排序的任何属性标记为未编制索引是一个好主意,因为它可以提高写入性能并减少存储空间。

您可能会发现文章mastering the datastore有用。他们解释了更多关于实体和索引如何构建和存储的细节。

+0

非常感谢。所以即使我的网站是“eBay like”,我应该使用一个实体对象来存储所有广告信息?我可以通过它查询没有额外的性能(和流量)负载?广告的细节将在点击广告的头后加载,所以我真的不需要它们。 – kovalu 2011-03-20 14:11:42

+0

@kovalu如果您将一起展示这些信息,我会将它们放在一起 - 这样会更有效率(因为您需要更少的数据存储)。如果你不需要一起显示信息,你可以分开实体。你可能也想为你的应用做一个简单的基准测试,但是人们通常发现加载“小”和“大”实体的性能差异可以忽略不计。 – 2011-03-20 14:43:58

+0

好的,再次感谢。在所有广告(用户将在eBay上进行搜索)列表中,将只有标题信息。如果他们点击广告的标题,我将需要广告正文中的其他信息。大量的信息是共享的,所以在广告的细节上我也需要广告的信息。我目前的解决方案是让他们分开,根据广告的细节进行分析,我会向他们询问,以便从头部和身体获取所有信息。 – kovalu 2011-03-20 15:03:54