使用 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
?
或者,换句话说:
- 读写的渐近计算复杂度(big-O)是多少?
- 什么是平均案例计算复杂度 - 对于Jay Leno
Car
以外的人(即每个实例的少量实例Owner
)? - 读写的等待有多少计算复杂度,数据库/memcache查找有多少?