【发布时间】:2013-02-13 19:48:18
【问题描述】:
我正在寻求建议,如何在速度方面提高这一点:
我的数据模型:
class Events(ndb.Model):
eventid = ndb.StringProperty(required=True)
participants = ndb.StringProperty(repeated=True)
我尝试获取数据的方式:
def GetEventDataNotCached(eventslist):
futures = []
for eventid in eventslist:
if eventid is not None:
ke = database.Events.query(database.Events.eventid == eventid)
future = ke.get_async(keys_only = True)
futures.append(future)
eventskeys = []
for future in futures:
eventkey = future.get_result()
eventskeys.append(eventkey)
data = ndb.get_multi(eventskeys)
所以我获得了异步密钥,而不是将密钥传递给“get_multi”——还有其他方法可以加快速度吗,因为我对性能仍然不满意。
在重复属性中最多可以有几百个字符串。 事件模型中有几个 10.000 行。 在 eventslist 中只有几十个我想要获取的 eventid。
【问题讨论】:
-
我不确定这是否会使性能更好或更差,但也许您可以创建一个参与者实体。 Particpants.query(事件列表中的事件ID)
标签: python google-app-engine optimization app-engine-ndb