【发布时间】:2017-10-29 21:37:57
【问题描述】:
我最近正在研究一个时间序列数据项目来存储一些传感器数据。为了实现最大的插入/写入吞吐量,我使用了 capped collection(根据 mongodb 文档 capped collection 将提高读/写性能)。当我使用 python 驱动程序测试集合以插入/写入数千个文档/记录时,没有索引的上限集合与正常集合相比,我看不出上限集合的写入性能与正常集合相比有多大差异。示例就像我使用 pymongo 驱动程序在单线程上插入 40K 记录。封顶收集大约需要 25.4 秒,正常收集需要 25.7 秒。
谁能解释一下我们什么时候可以达到上限集合的最大插入/写入吞吐量?这是时间序列数据收集的正确选择吗?
【问题讨论】:
-
上限集合的性能保持不变/稳定,无论您“插入”多少数据。并且常规集合的性能会随着集合的大小而降低。
-
此外,按照今天的标准,40k 个文档什么都不是。 (除非你的硬件真的很弱)。尝试在每个文件中编写数十亿个文档。你会看到区别。
-
嗨,塞尔吉奥,我已经在上限收集上运行了百万条记录插入。我看不到比正常收集有任何改进。我的驱动程序对插入率的提高也很重要吗?我目前正在使用具有 32 个线程的 8 核机器。这种硬件配置还不足以让上限集合提供性能反弹?
-
嗨,塞尔吉奥,您有任何疑问
-
显然这还不够,是的。尝试插入几亿。
标签: mongodb mongodb-query aggregation-framework pymongo capped-collections