我需要存储大量ModelA
个实体,并且由于应用引擎定价基于写入/读取的实体数量,因此我将100个实体捆绑在一起并将它们存储为一个ModelB
。
class ModelA(ndb.Expando):
a1 ... a20 = ndb.IntegerProperty()
class ModelB(ndb.Model):
data = ndb.StructuredProperty(ModelA, repeated=True)
我的数据存储区中只有80个这样的ModelB
个实体,应该使用大约1-2MB的内存,但ModelB.query().fetch()
需要5秒。有没有办法让这更快?使用LocalStructuredProperty
代替StructuredProperty
会更好吗?
答案 0 :(得分:0)
如果您不需要为值(对于查询)编制索引,您可能希望将它们存储为不透明对象:
class ModelB(ndb.Model):
data = ndb.JsonProperty(indexed=False)
def add_data(self, model_a)
if not self.data:
self.data = []
self.data.append(model_a)
这将避免处理结构化属性和验证的开销。