与Google App Engine中的正常Bigtable模型相比,多模型对性能有何影响?


12

在常规的Google App Engine,多模型或正常的“ Bigtable”模型中,什么能产生最佳性能?

实际上,该多模型在父表中创建了一个称为“类”的列,该列提供了继承跟踪。而从父类继承的普通Bigtable会创建一个新的单独的数据结构,而无法查询父类并查找所有子类型类的所有子类。

Answers:


3

性能可能有所不同,但可能很小。

这是我发现的内容(全部基于适用于PythonGoogle文档)。

  1. BigTable本机不支持PolyModel信息。相反,它是使用“ class”属性实现的。因此,当您尝试执行搜索(例如,查找基类)时,将在此“ class”属性上进行搜索。

  2. 所有使用PolyModel类的查询都应用了一个额外的过滤器,该过滤器可以根据给定的类进行过滤(使用'class'属性)。

  3. 为PolyModel类创建的任何索引都必须考虑额外的“类”列。

本质上,PolyModel类自己负责“ class”属性的处理,将其插入查询中并用于其他查询。除此之外,它的工作方式与标准BigTable的用法相同。

因此,区别实际上只是添加和维护一列。

有性能差异吗?是的,大概是这样。您添加到任何数据库系统中的每一列都会对性能产生影响。但是,意义重大吗?可能不会。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.