我正在查询看起来像这样的数据存储区:
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秒才能发生。有没有办法减少这个时间?我知道循环结果会导致放缓。
答案 0 :(得分:2)
(a)确保在运行查询时将批处理大小设置为500。默认情况下,它是10。
(b)在循环内优化自己的代码。例如:
Entity result;
while (results.hasNext()) {
result = results.next();
....
}