循环数据存储查询结果需要太长时间.有没有办法加快速度?

A B*_* Ba 5 google-app-engine google-cloud-datastore

我正在查询看起来像这样的数据存储区:

Query<Entity> query = Query.gqlQueryBuilder(Query.ResultType.ENTITY,
                                    "SELECT * FROM " + kind
                                            + " WHERE Location = place").build();
results = datastore.run(query);
Run Code Online (Sandbox Code Playgroud)

结果存储在一个 QueryResults<Entity> results;

然后我遍历结果并提取我需要的数据.

这种类型有大约10000个实体,我将它们全部提取出来.

while (results.hasNext()) {

   Entity result = results.next(); 
   ....
}
Run Code Online (Sandbox Code Playgroud)

这需要10秒才能实现.有没有办法减少这个时间?我知道循环结果导致减速.

And*_*gin 2

(a) 确保运行查询时将批量大小设置为 500。默认情况下为 10。

(b) 在循环内优化您自己的代码。例如:

Entity result;

while (results.hasNext()) {
   result = results.next(); 
   ....
}
Run Code Online (Sandbox Code Playgroud)