[英]MongoDB write performance
给定的是,在一台计算机上平均拥有550bytes的 20M文档和PHP驱动程序 。
首先插入 (不是mongoimport), journal on, WriteConcern to default (1)
。 花了大约12个小时 。 然后让我感到奇怪,所以我尝试了第二次导入。
其次,我将batchInsert()与--nojournal and WriteConcern=0
并记下了性能。 总共花了12个小时 ? 有趣的是,开始每分钟插入40000 records
,但最终却是每分钟2500 records
,我只能想象到40000 records
结束时每分钟要插入100 records
。
我的问题是:
-更新-
机器是Core Duo 3GHz,具有8GB RAM。 在整个过程中,RAM使用率稳定在%50。 但是,CPU使用率很高。 在PHP中,我有ini_set('memory_limit', -1)
来不限制内存使用。
如果仅一次迁移,则建议您在插入之前删除所有索引。 使用deleteIndex(..)
方法。
完成所有插入操作后,使用isureIndex(..)
取回索引。
PS。 从您提供的数字来看,它不是大量数据,可能是您错误配置了MongoDB服务器。 请提供您的MongoDB Server配置和内存大小,也许我可以找到其他需要改进的地方。
回答您的(2)问题,可能是您的服务器在进行某些插入操作后运气不足。
经过大量的拔头发,我意识到积压的效果。 当我将文档排成5000行时,很有趣,批量插入就像魔术一样工作,并且在不到4分钟的时间内导入了!
这个工具给了我一个主意: https : //github.com/jsteemann/BulkInsertBenchmark
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.