MongoDB 大小为 300kb 的文档需要 8-15 秒
MongoDB Document of Size 300kb taking 8-15s
我正在使用托管在 GCP 上的 MongoDB Atlas 免费套餐。我有包含 300kb 数据的数组的文档。一个简单的 Get By ID 查询大约需要 8-15 秒。集合中的记录少于 50 条,因此索引可能不是问题。此外,我使用了我的自定义 ID,而不是我集合中的内置 ObjectId。这么多查询时间正常吗?如果是,有什么方法可以解决这个问题,因为我需要在前端进行快速实时分析。我已经想到了 Redis,但是有没有更好的方法来解决这个问题?
作为回答,我强烈建议你不要处理M0 Atlas层。或者至少明智地选择它,如果您远离美国一千英里,请不要选择基于美国的集群。别误会我的意思。这是一个很好的产品。不过要看你的成本了。
至于我自己,我更喜欢处理 MongoDB Community Edition 版本并将其部署在我的 VPS/VDS 上。当然,它不会像您在 Atlas 中看到的那样为您提供良好的 Web 界面。并且不支持 Realms functional (stitch),但您可以自己设计。而且,每个性能问题都取决于您。
对于我来说,我使用MongoDB不是实时数据,而是前端的视觉快照,性能没有问题。
I mean if I have them, then I deal with them myself, via indexing,
increasing VPS CPU/RAM, optimizing queries and so on
此外,关于您的问题还有一件事:«我有包含 300kb 数据的数组的文档»
如果您的架构中有一个数组字段,并且它存储了大量数据,尤其是如果它是嵌入式文档,您确定您使用的是正确的架构模式吗?
您可能想看看 this articles at Mongo University 架构模式。
如果您有一个不同的嵌入式文档集合,并在需要时通过 aggregation.$lookup
请求它们,可能会更好。
确保您的操作没有受到限制。 https://docs.atlas.mongodb.com/reference/free-shared-limitations/
使用不同的驱动程序(另一种语言)测试性能,确认您使用的是最新的驱动程序版本。
测试较小的文档以确定时间是在服务器上还是在网络上被消耗。
测试 mongo shell.
我正在使用托管在 GCP 上的 MongoDB Atlas 免费套餐。我有包含 300kb 数据的数组的文档。一个简单的 Get By ID 查询大约需要 8-15 秒。集合中的记录少于 50 条,因此索引可能不是问题。此外,我使用了我的自定义 ID,而不是我集合中的内置 ObjectId。这么多查询时间正常吗?如果是,有什么方法可以解决这个问题,因为我需要在前端进行快速实时分析。我已经想到了 Redis,但是有没有更好的方法来解决这个问题?
作为回答,我强烈建议你不要处理M0 Atlas层。或者至少明智地选择它,如果您远离美国一千英里,请不要选择基于美国的集群。别误会我的意思。这是一个很好的产品。不过要看你的成本了。
至于我自己,我更喜欢处理 MongoDB Community Edition 版本并将其部署在我的 VPS/VDS 上。当然,它不会像您在 Atlas 中看到的那样为您提供良好的 Web 界面。并且不支持 Realms functional (stitch),但您可以自己设计。而且,每个性能问题都取决于您。
对于我来说,我使用MongoDB不是实时数据,而是前端的视觉快照,性能没有问题。
I mean if I have them, then I deal with them myself, via indexing, increasing VPS CPU/RAM, optimizing queries and so on
此外,关于您的问题还有一件事:«我有包含 300kb 数据的数组的文档»
如果您的架构中有一个数组字段,并且它存储了大量数据,尤其是如果它是嵌入式文档,您确定您使用的是正确的架构模式吗?
您可能想看看 this articles at Mongo University 架构模式。
如果您有一个不同的嵌入式文档集合,并在需要时通过 aggregation.$lookup
请求它们,可能会更好。
确保您的操作没有受到限制。 https://docs.atlas.mongodb.com/reference/free-shared-limitations/
使用不同的驱动程序(另一种语言)测试性能,确认您使用的是最新的驱动程序版本。
测试较小的文档以确定时间是在服务器上还是在网络上被消耗。
测试 mongo shell.