使用Google App Engine,我很好奇是否有人能够阐明使用ComputedProperty
与使用按需计算相关模型的性能特征(阅读和写作)。
ComputedProperty具有允许对属性进行索引的明显好处,但我只是对读取速度有多快感到好奇。写作是比较的。
例如,给定两个模型:
class Car(ndb.Model):
owner_key = ndb.KeyProperty(kind='Owner', indexed=True)
class Owner(ndb.Model)
def cars_count(self):
ndb.query(Car.owner_key == self.key).count()
cars_count_prop = ndb.ComputedProperty(cars_count)
问题确实分解为以下内容:
Owner
的速度有多慢,因为它有cars_count_prop
?cars_count_prop
的速度比cars_count
快多少?或者换句话说:
Car
个Owner
个实例数少)的平均案例计算复杂度是多少?答案 0 :(得分:6)
每次更新所有者实体时,都会重新计算查询。这不可能是好事。查询的复杂性不是问题。但如果你真的想知道,你必须对它进行基准测试。