java - Google Cloud - 数据存储与本地计算机相比太慢

标签 java google-app-engine google-cloud-platform google-cloud-datastore objectify

我们将 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/

相关文章:

java - 在 Google App Engine (Java) 上使用键列表获取多个对象的最佳方法是什么?

google-cloud-platform - 基于 GCP 日志的指标不适用于正则表达式过滤器

python - 从数据流 (Python) 将嵌套架构写入 BigQuery

java - 静态工厂方法问题!

java - cf list 路径正则表达式问题

java - 运行本地 GAE 应用程序时出现问题 : Unresolved compilation problems

ssl - 在 Google Compute Engine 实例上安装 SSL 证书

Java - 遍历字符串的最有效方法

java - 在 Java 中解析 JSON 字符串

python - 有没有办法禁用 App Engine dev_appserver 上的内置截止日期?