1

我正在使用mongoimport将一些json文件导入到我的 MongoDB 数据库中。我有 5 个文件,每个文件大约有 2M 个文档,并且该集合有 4 个常规索引和 2 个多键索引。

当我开始导入第一个文件时,我看到每秒插入约 500 个文档,但一段时间后性能开始下降。我现在正在导入第三个文件,我看到每秒不到 50 个文档的吞吐量。似乎随着集合大小的增加,导入会降低。这是怎么回事?我该如何改进呢?

4

1 回答 1

2

虽然在这种情况下可能不是原因,但索引在写入时确实会产生一些开销,因为您既要插入索引,又要插入集合。如果您更新文档导致其变得大于分配的大小,则会对性能造成额外影响。在这些情况下,包含此文档的所有索引都需要更新。

集合上有 6 个索引,每个插入的文档都有 6 个索引要更新。这将对有效速度产生一定的影响mongoimport

您可以通过导入未索引的集合并在事后创建索引来测试这一点。

您可以在此处查看有关索引写入影响的更多信息。

于 2012-11-23T02:22:05.777 回答