在我的应用中,我希望有一个像这样定义的实体:
class MyModel(db.Model):
title = db.StringProperty()
myBlob = db.BlobProperty()
假设这个blob大约1兆字节。这会减慢我在MyModel类型上进行的任何查询吗?它是为每个实体获取整个1mb,还是仅仅在我实际尝试访问blob之前引用?
答案 0 :(得分:1)
检索实体的那一刻,除非您执行投影查询,否则将从数据存储区加载blob。
您有几个选项可以避免在需要之前加载BlobProperty。
执行投影查询,然后只在需要时获取完整实体。
将BlobProperty粘贴在Child实体中(将顶级域名设为祖先)并且只在需要时使用get获取属性。
不要使用BlobProperty,而是将其粘贴在GCS(Google CLoud Storage)中并从那里提供服务。
最后一个好处是,如果你不对blob进行处理,你的appengine实例不需要参与提供它(当然,取决于你的要求)