我有以下简单查询:
client = datastore.Client('fmy_project')
query = client.query(kind='kind1')
query.add_filter('x', '=','y')
for row in query.fetch():
#process the row and save to file
从本地计算机工作时,我需要100行5秒才能获取结果。这非常慢。
当我在python进程上进行strace时,我会得到很多行:
recvmsg(9,0x7ffffc9ee9f0,0)= -1 EAGAIN(资源暂时不可用)
民意调查([{fd = 8,events = POLLIN},{fd = 9,events = POLLIN}],2,200)= 0(超时)
有没有办法说数据存储一次性获取所有内容或进行某些其他优化?
我用Google搜索并没有找到任何相关选项
答案 0 :(得分:1)
你是说只需要5秒才能获取?不在最后处理for循环中的数据?
通常情况下,如果你更好:
ndb.put_multi(数据列表)
请参阅此处的文档:https://cloud.google.com/datastore/docs/concepts/entities#batch_operations