Ich Abfrage der Datenspeicher, etwa wie folgt aussieht:Das Durchlaufen der Datastore-Abfrageergebnisse dauert zu lange. Gibt es eine Möglichkeit, dies zu beschleunigen?
Query<Entity> query = Query.gqlQueryBuilder(Query.ResultType.ENTITY,
"SELECT * FROM " + kind
+ " WHERE Location = place").build();
results = datastore.run(query);
Die Ergebnisse in einem QueryResults<Entity> results;
Dann habe ich eine Schleife durch die Ergebnisse gespeichert werden und extrahieren die Daten, die ich brauche.
Die Art hat rund 10000 Entitäten und ich extrahiere sie alle.
while (results.hasNext()) {
Entity result = results.next();
....
}
Es dauert 10-ish Sekunden, bis dies geschieht. Gibt es eine Möglichkeit, diese Zeit zu reduzieren? Ich weiß, dass das Durchschleifen der Ergebnisse die Verlangsamung verursacht.
Danke für die Antwort! Wo stelle ich die Batchgröße ein? –
In der Low-Level-Datenspeicher-API gibt es das FetchOptions-Objekt, das Sie beim Vorbereiten einer Abfrage übergeben können. Ich sehe keine ähnliche Option in der Gcloud-API. Es kann eine gute Frage sein, das Gcloud-Team zu fragen. –
Überprüfen Sie, ob Sie zur Datastore-API (https://cloud.google.com/appengine/docs/java/datastore/api-overview) wechseln können - sie ist für App Engine optimiert und ich finde sie sehr schnell. –