在常规的Google App Engine,多模型或正常的“ Bigtable”模型中,什么能产生最佳性能?
实际上,该多模型在父表中创建了一个称为“类”的列,该列提供了继承跟踪。而从父类继承的普通Bigtable会创建一个新的单独的数据结构,而无法查询父类并查找所有子类型类的所有子类。
在常规的Google App Engine,多模型或正常的“ Bigtable”模型中,什么能产生最佳性能?
实际上,该多模型在父表中创建了一个称为“类”的列,该列提供了继承跟踪。而从父类继承的普通Bigtable会创建一个新的单独的数据结构,而无法查询父类并查找所有子类型类的所有子类。
Answers:
性能可能有所不同,但可能很小。
这是我发现的内容(全部基于适用于Python的Google文档)。
BigTable本机不支持PolyModel信息。相反,它是使用“ class”属性实现的。因此,当您尝试执行搜索(例如,查找基类)时,将在此“ class”属性上进行搜索。
所有使用PolyModel类的查询都应用了一个额外的过滤器,该过滤器可以根据给定的类进行过滤(使用'class'属性)。
为PolyModel类创建的任何索引都必须考虑额外的“类”列。
本质上,PolyModel类自己负责“ class”属性的处理,将其插入查询中并用于其他查询。除此之外,它的工作方式与标准BigTable的用法相同。
因此,区别实际上只是添加和维护一列。
有性能差异吗?是的,大概是这样。您添加到任何数据库系统中的每一列都会对性能产生影响。但是,意义重大吗?可能不会。