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秒才能实现.有没有办法减少这个时间?我知道循环结果导致减速.
(a) 确保运行查询时将批量大小设置为 500。默认情况下为 10。
(b) 在循环内优化您自己的代码。例如:
Entity result;
while (results.hasNext()) {
result = results.next();
....
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
361 次 |
| 最近记录: |