我们将 Google App Engine 与 Datastore 和 Objectify 结合使用。在我们的本地计算机中,执行查询需要 1 秒,而在云中则需要大约 20 秒。服务器位置位于欧洲西部,而我在西类牙,所以我认为这不是问题。
我们执行的查询只是使用 1 个过滤器检索数据:
final CityEntity cityEntity = new CityEntity();
cityEntity.setId(1);
ofy().load().type(Person.class).filter("city =", cityEntity).list();
最佳答案
在数据存储中,查询随着结果集的大小而缩放。这座城市有多少人?如果很大,查询不仅会很慢,而且很快就会达到 RAM 的限制。
根据您想要做什么,您可能需要采取不同的方法。例如,您可以执行仅键查询,将结果转换为任务,然后为每个人排队一个任务。在达到任务/cron 的 1000 万个截止日期之前,这可能会达到数十万,甚至可能是数百万。对于较大的数量,您可能需要某种形式的映射/归约。
关于java - Google Cloud - 数据存储与本地计算机相比太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60077218/