是否有使用列表从NDB查询的更快方法?

问题描述 投票:0回答:1

我有一个列表,我需要从中查询相应的信息。我可以做:

for i in list:
  database.query(infomation==i).fetch()

但这太慢了,因为对于列表中的每个元素,它都必须转到数据库,然后返回,重复,而不是一次查询所有内容。有没有办法加快这个过程?

python-2.7 app-engine-ndb
1个回答
0
投票

您可以使用the ndb async operations来加快代码速度。基本上,您将几乎并行启动所有查询,然后对结果进行处理,这可能会导致整体执行速度大大提高,尤其是在您的列表很长的情况下。遵循以下原则:

futures = []
for i in list:
     futures.append(
         database.query(infomation==i).fetch_async())
for future in futures:
    results = future.get_result()
    # do something with your results

[使用上述文档中描述的异步操作有更高级的方法,根据实际代码的结构,您可能会发现它们很有趣。

© www.soinside.com 2019 - 2024. All rights reserved.