我们正在尝试使用mongo db c驱动程序将大量文档连续插入mongo db。
每个文档都有一定数量的"列"。每列是文档的键值对。 一旦我们插入了文档,我们就不会修改它,直到删除。
我们如何实现最大插入速度(每秒)?
当我们尝试在200个列中插入5000个文档时,在正常的集合中,我们得到以下结果:
如果我们为每个文档插入较少的列(例如,只有3个整数),则速度更快:平均1次插入30&000; 000文档,未确认。
如果我们并行使用多个写入器,则时间会随着写入器的数量(几乎)线性增加。我们猜测这是因为MongoDB的每个数据库锁。
然后我们尝试在本地计算机上使用分片。使用分片,每个分片可以有一个写入器。我们在_id字段上使用了散列分片键。结果非常糟糕:插入速度比我们之前尝试的任何速度慢。
因此,当我们只使用一个编写器而没有分片时,我们获得了最快的插入速度。
我们如何让MongoDB在一台机器上扩展?
如果我们想要不断增长的数据集,我们可以使用上限集合吗?限制集合会提高插入速度吗?
我们应该使用另一个noSql数据库吗?
总结的"要求"对于我们的存储解决方案:
相关:How to speed up MongoDB Inserts/sec? 这个问题不重复。我们有不同的要求并使用其他驱动程序。也许我们甚至会遇到不同的瓶颈,正如下面的评论指出的那样。