我刚刚将我的应用程序从 Google Datastore(第 1 代)升级到数据存储模式下的 Google Firestore(第 2 代)。
我的数据库查询从大约 200 毫秒缩短到大约 2 秒。我正在努力找出我做错了什么。
它在 Google App Engine 标准中运行,作为 Spring Boot 3 应用程序,使用 Java 17 和嵌入式 Tomcat 作为 Web 服务器。
当我使用数据存储模拟器在本地运行时,数据库查询速度非常快。只是当我部署时,它们运行缓慢。
我让所有数据库查询都有
ReadOption.eventualConsistency()
,但这没有帮助。
我看不到任何有关数据库连接管理的文档。我只是这样做:
Datastore datastore = DatastoreOptions.getDefaultInstance().getService();
我想知道是否必须在每个数据库调用上建立一个新连接。
任何关于我为何看到表现不佳的想法都会很棒。
谢谢。
感谢您的评论,我想我已经弄清楚了。
旧的第一代 GAE 框架在内存方面非常高效。 Spring Boot 与嵌入式 Tomcat 的区别并不大。刚刚使用 GAE 库启动服务器,它似乎使用了大约 300MB 的内存。
原本工作正常的 F1 实例现在陷入困境,因为它们的内存限制为 384MB。
我现在已改用 F2 实例,虽然我的应用程序仍然比旧的第一代 GAE 框架慢,但它运行正常。
我的下一步将是调整 Spring Boot 以使其更加高效,或者放弃它。
谢谢大家。