我正在使用Google Datastore查询某种具有25个属性的实体。我在这种数据存储区中只有5个实体,但是当我查询这些实体时,创建新查询平均需要2秒,准备查询需要4秒。在随后的提取中,整个过程只需要500ms。我在这种实体上有两个索引。有没有办法提高初始提取的性能?
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query q = new Query("Producers").setFilter(new FilterPredicate("name", FilterOperator.EQUAL, searchName));
List<Entity> producers = datastore.prepare(q).asList(FetchOptions.Builder.withDefaults());
答案 0 :(得分:2)
您遇到的问题与您的查询,实体数量或索引无关。即使您将代码减少到System.out.print("Hello!")
,您的实例启动和响应也需要6-8秒。使用代码注入等的复杂应用程序可能需要更长的时间。
如果此启动时间对您至关重要,您可以从&#34;自动&#34;切换缩放模型。到&#34;基本&#34;或&#34;手册&#34;,使至少一个实例始终可用。即使这样,当需要启动第二个实例等时,您可能会遇到此问题,但此问题的重要性很快会随着实例数量而消失(例如,如果运行实例支持10,000个活动用户,则只有10,001个用户具有经验这个延迟)。
另请注意,自动缩放实例在闲置约15分钟后会关闭。同样,如果您的应用有足够的用户永不关闭,绝大多数用户将永远不会遇到这种延迟。