【发布时间】:2013-03-06 14:43:43
【问题描述】:
我想知道我是否应该有一个只用于计算实体的种类。
例如 有一个类似下面的模型。
class Message(db.Model):
title = db.StringProperty()
message = db.StringProperty()
created_on = db.DateTimeProperty()
created_by = db.ReferenceProperty(User)
category = db.StringProperty()
并且有 100000000 个实体由这个模型组成。
我想计算类别等于“书”的实体。
在这种情况下,我应该创建以下模式来计算它们吗?
class Category(db.Model):
category = db.StringProperty()
look_message = db.ReferenceProperty(Message)
这个小模型是否可以加快计数速度?
它会擦除更小的内存吗?
顺便说一下,我正在考虑像下面这样计算它们
q = db.Query(Message).filter('category =', 'book')
count = q.count(10000)
【问题讨论】:
-
我认为您应该重新表述您的问题并添加一些代码。你的期望是什么 你期望的结果是什么。
-
感谢您的建议
-
我不认为模型大小会影响 count()
-
我从未见过 count() 文档中引用过它(大小)。
-
我认为 count() 只是遍历索引和计数,它实际上并没有获取实体。这反映在成本上,因为 count() 需要一个小操作而不是完整的读取操作。
标签: google-app-engine google-cloud-datastore