mongodb - 使用大型文档加速 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")}})
解决方案
推荐阅读
- python - 拆分数组 Python
- python - 如何在 Python 中打印大量数字?
- javascript - 下一个数组元素必须从前一个开始
- java - 连接被拒绝错误显示 Android studio 与 Sql Server 连接
- c# - 从字符串数组递归创建树层次结构
- layout - Autocad - 自动更新 lisp 生成的字段(布局计数器)
- spring - 如何让 spring-boot 1.5.0 支持这个 oauth2 解决方案?
- ansible - Ansible 字符串连接到配置文件中
- excel - 数据在 ComboBox 下拉菜单中不可见
- php - 有没有办法将参数绑定到这个准备好的语句?