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

时间:2016-07-15 15:20:37

标签: 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);

结果存储在QueryResults<Entity> results;

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

该类有大约10000个实体,我将它们全部提取出来。

while (results.hasNext()) {

   Entity result = results.next(); 
   ....
}

这需要10秒才能发生。有没有办法减少这个时间?我知道循环结果会导致放缓。

1 个答案:

答案 0 :(得分:2)

(a)确保在运行查询时将批处理大小设置为500。默认情况下,它是10。

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

Entity result;

while (results.hasNext()) {
   result = results.next(); 
   ....
}