我正在使用mongoimport
将一些json
文件导入MongoDB数据库。我有5个文件,每个文件大约有2M文件,集合有4个常规索引和2个多键文件。
当我开始导入第一个文件时,我看到每秒插入约500个文档但是一段时间后性能开始下降。我现在正在导入第三个文件,我看到每秒少于50个文档的吞吐量。随着集合规模的增加,导入似乎会降低。这是怎么回事?我怎样才能改善这个?
答案 0 :(得分:2)
虽然在这种情况下可能不是原因,但索引在写入时会有一些开销,因为您要插入索引以及插入集合。如果更新导致文档大小超出分配大小的文档,则会产生额外的性能影响。在这些情况下,需要更新包含此文档的所有索引。
集合上有6个索引,每个插入的文档都有6个索引要更新。这会对mongoimport
您可以通过导入到未索引的集合并在事后创建索引来测试它。
您可以查看here以获取有关索引写入影响的更多信息。