我正在使用Mongo来日复一日地存储一组约40股的所有"滴答声".这些刻度包含交易信息(包含价格和交易量的文档)和账簿信息(包含买卖建议的更复杂的文档).量级订单约为5K交易+ 20K账簿*每天40股权.文档按插入日期的符号(权益名称)日期编制索引.收集一周后,我的一个查询不再缩放:查找不同的日期需要很长时间.所以我决定有一个特殊的文件,只是说某一天有一个"集合",这是一个正确的方法吗?此外,将收集的内容作为单独的小文档收集是正确的,还是更好地在股权文件中收集作为数组的蜱?
谢谢大家!
顺便说一句,这个问题就是这个问题的结果:使用mongodb存储日内股票数据
增加: 即使我明确说(在控制台)
db.books.ensureIndex({dateTag:1})
db.books.distinct("dateTag")
Run Code Online (Sandbox Code Playgroud)
它回复得很慢.所以也许更好的问题是:指数会影响distinct绩效吗?
添加 升级到1.8.2后的行为是一样的.
索引会影响显着性能吗?
确实如此,但是没有“解释计划”,因此只能通过文档/代码来确认。
文档按符号(股票名称)插入日期、当天时间进行索引
我不是 100% 清楚你有多少个索引或者你在这里有什么类型的内存占用。仅拥有索引并不一定意味着它会非常快。如果该索引不在内存中,那么您最终会转到磁盘并减慢查询速度。
如果尽管有索引,但您发现此查询的性能很慢,我会检查两件事:
然而,保留“存储天数”列表可能更容易。即使使用索引,这种不同的查询也可能会变得更糟。因此,它永远不会像简单列出日期的文档那么快。
| 归档时间: |
|
| 查看次数: |
1593 次 |
| 最近记录: |