什么会更有效率?
有一个具有一个属性的大型过滤
或
有一大类,而另一种类型具有带键的属性列表,并使用第二种类型来恢复属于第一类的实体。每个列表Aprox 6k项目。
选项1 _ __ _ __
class customer()
propertyinteger
propertystriing
...
propertyintegerID = use to be filtered and indexed
thousand of costumers
选项2 _ __ _ ____
class customer()
propertyinteger
propertystriing
class CustomerGroup()
propertystring
propettycustomerList (repeated=True) (save a list with __key__ of customer class)
我使用CustomerGroup ListProperty来获取我感兴趣的客户。该列表将有6k aprox。
感谢。
答案 0 :(得分:1)
选项1可能没问题。如果我理解正确,每个客户都可以属于一个组,一个客户一次只能属于一个组,并且您希望能够查询属于组的所有客户。您的组查询只是Customer类型的单个属性上的相等过滤器。
对于您对一致性保证和查询的需求还有其他注意事项。假设两个客户实体必须位于不同的实体组中,则组ID属性的索引将更新为最终一致性,因此在更新后不久,新的客户或组ID的更改可能不会作为组查询的结果出现。如果不是这样,选项2或同一实体组中的一组单独的客户到组配对实体将使组查询(具有祖先过滤器)与更新强烈一致。通过将所有客户实体放在同一组中,可以使选项1具有很强的一致性,但这有可能存在缺点,具体取决于您的应用程序的需求。