首页 > 解决方案 > 使用大型文档加速 mongodb 查找查询

问题描述

我有一个大约 5GB 的 mongo 集合,其中包含大约 200k 个文档。它们每个都有一些名称、货币和日期,然后是一个大字符串(这是我感兴趣的数据),每个文档的总大小约为 5MB。

我的问题是我需要尽快找到 250 个不同日期的特定名称和货币。

目前我正在使用

db.collection.find(
{'name': somename, 'currency': mycurrency, 
'valuation_date': {'$in': [list_of_250_datetime_datetime]}
}) [see more detailed query in the update below]

目前速度相当令人失望,因为当我在本地主机上运行 mongod 服务器时,它似乎每秒只下载大约 10 个文档。

我还添加了名称、货币和日期的索引,以及一个综合索引。添加索引使其速度提高了 25% 左右。

我还能做些什么来加快从 mongodb 加载这些文档的速度?

值得注意的是:无法拆分文档,因为我需要每个日期/名称/货币的大数据字符串,而我无法控制该部分。

任何建议表示赞赏。


更新:

这里是正在发生的事情的更详细的简介:

这里是完整的查询:对于 916 个条目,Pymongo 大约需要 94 秒,但对于 3t studio,前 100 个条目大约需要 6 秒。

db.ForecastCurveId.find({ 'Ccy': 'USD', 'Class': 'ForecastCurveId', 'Index': 'LIBOR', 'Tenor': '12M', 'source': {'$in': ['ods']}, 'valuation_date': {'$gte': new Date("2015-11-09"), '$lte': new Date("2016-11-07")}})

在此处输入图像描述

如果我使用 pymongo,这里的配置文件: 在此处输入图像描述

标签: mongodbpymongo

解决方案


推荐阅读