1

我的 GAE 项目中有一类视频,我希望能够通过他们的分数进行搜索,即赞成票减去反对票。我希望能够查询此值,并且希望以最有效的方式获取它。我相信使用计算属性获取是以下方式的最佳方法:

class Video(ndb.Model):
    title = ndb.StringProperty(required = True)
    description = ndb.TextProperty()

    upvotes = ndb.IntegerProperty(required = True)
    downvotes = ndb.IntegerProperty(required = True)
    score = ndb.ComputedProperty(lambda self: self.upvotes - self.downvotes)

我很好奇 ComputedProperty 是否有任何性能拖累?每次给出赞成票或反对票时,只增加或减少得分值会更有效吗?

4

1 回答 1

1

对于简单的计算(如您的示例中的计算),不应该有太多的性能拖累。是的,每当您读取数据时都会运行计算,但首先构建结果集涉及更多逻辑;一个减法不会影响任何事情。

对于更复杂的计算,是的,可能会影响性能。

于 2013-07-26T20:15:03.963 回答