Mongodb 托管时变慢
Mongodb gets slow when hosted
我正在使用 Java SE 实现桌面应用程序。我在本地使用 Mongodb,一切都非常快。但是,我决定在 mongodb Atlas 上在线部署数据库,并且我使用了他们以 mongodb:// 开头的连接线,从这里开始,由于连接,应用程序变得非常慢。我尝试使用相同的连接字符串 mongodb://ip_adress:port 将其部署在 Digital ocean droplet 上。速度变快了一点,但没那么快。
*本地计时:1-2 秒
*Mongo atlas 上的时间:8-10 秒。 (免费层共享集群)
*Digital Ocean 服务器上的时间:7-8 秒。
请注意: 8 秒是一个 JFrame,它根据数据库中的数据进行一些计算,因此当连接在线时加载需要 8 秒,本地几乎为 0 时间.
问题:
*在应用程序或数据库的实施中,这是一种不好的做法吗?这不太可能,因为它在本地非常快,而且数据库仍然包含简单的测试数据。
*服务器规格不佳吗?这似乎不是问题,因为除了我的测试和一个几乎从未访问过的网站之外,服务器上没有超繁重的任务。 ( 数字海洋 5$ 滴)
日志
- 登录
Sep 22, 2019 8:24:21 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster created with settings {hosts=[ip_adress:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
Sep 22, 2019 8:24:21 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster description not yet available. Waiting for 30000 ms before timing out
Sep 22, 2019 8:24:23 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:1, serverValue:84}] to ip_adress:27017
Sep 22, 2019 8:24:23 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Monitor thread successfully connected to server with description ServerDescription{address=ip_adress:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 6, 3]}, minWireVersion=0, maxWireVersion=6, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=425466400}
Sep 22, 2019 8:24:26 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:2, serverValue:85}] to ip_adress:27017
Sep 22, 2019 8:24:27 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Closed connection [connectionId{localValue:2, serverValue:85}] to ip_adress:27017 because the pool has been closed.
连接时间很正常。你应该在一个单独的线程上进行调用,这样它就不会阻塞你的 ui.
我正在使用 Java SE 实现桌面应用程序。我在本地使用 Mongodb,一切都非常快。但是,我决定在 mongodb Atlas 上在线部署数据库,并且我使用了他们以 mongodb:// 开头的连接线,从这里开始,由于连接,应用程序变得非常慢。我尝试使用相同的连接字符串 mongodb://ip_adress:port 将其部署在 Digital ocean droplet 上。速度变快了一点,但没那么快。
*本地计时:1-2 秒
*Mongo atlas 上的时间:8-10 秒。 (免费层共享集群)
*Digital Ocean 服务器上的时间:7-8 秒。
请注意: 8 秒是一个 JFrame,它根据数据库中的数据进行一些计算,因此当连接在线时加载需要 8 秒,本地几乎为 0 时间.
问题:
*在应用程序或数据库的实施中,这是一种不好的做法吗?这不太可能,因为它在本地非常快,而且数据库仍然包含简单的测试数据。
*服务器规格不佳吗?这似乎不是问题,因为除了我的测试和一个几乎从未访问过的网站之外,服务器上没有超繁重的任务。 ( 数字海洋 5$ 滴)
日志
- 登录
Sep 22, 2019 8:24:21 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster created with settings {hosts=[ip_adress:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
Sep 22, 2019 8:24:21 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster description not yet available. Waiting for 30000 ms before timing out
Sep 22, 2019 8:24:23 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:1, serverValue:84}] to ip_adress:27017
Sep 22, 2019 8:24:23 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Monitor thread successfully connected to server with description ServerDescription{address=ip_adress:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 6, 3]}, minWireVersion=0, maxWireVersion=6, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=425466400}
Sep 22, 2019 8:24:26 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:2, serverValue:85}] to ip_adress:27017
Sep 22, 2019 8:24:27 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Closed connection [connectionId{localValue:2, serverValue:85}] to ip_adress:27017 because the pool has been closed.
连接时间很正常。你应该在一个单独的线程上进行调用,这样它就不会阻塞你的 ui.