Sto interrogando il datastore che sembra qualcosa di simile:Il looping attraverso i risultati della query Datastore richiede troppo tempo. C'è un modo per accelerare questo?
Query<Entity> query = Query.gqlQueryBuilder(Query.ResultType.ENTITY,
"SELECT * FROM " + kind
+ " WHERE Location = place").build();
results = datastore.run(query);
I risultati vengono memorizzati in un QueryResults<Entity> results;
Poi ho un ciclo tra i risultati ed estrarre i dati di cui ho bisogno.
Il tipo ha circa 10000 entità in esso e le sto estraendo tutte.
while (results.hasNext()) {
Entity result = results.next();
....
}
Sono necessari 10 secondi perché ciò si verifichi. C'è un modo per ridurre questo tempo? So che il looping dei risultati sta causando il rallentamento.
Grazie per la risposta! Dove posso impostare la dimensione del lotto? –
Nell'API Datastore di basso livello è presente l'oggetto FetchOptions che è possibile passare durante la preparazione di una query. Non vedo un'opzione simile nelle API di Gcloud: potrebbe essere una buona domanda da porre al team di Gcloud. –
Verifica se puoi passare all'API Datastore (https://cloud.google.com/appengine/docs/java/datastore/api-overview): è ottimizzato per App Engine e lo trovo molto veloce. –