我使用的是python 2.7.8和pymongo 2.7 而mongoDB服务器是ReplicaSet组的一个主要的两个辅助服务器。 mognodb服务器构建在AWS服务器EBS上:500GB,IOPS3000。
我想知道有没有办法加快插入速度。当W = 2时,j = True 使用pymongo插入数百万个文件需要花费大量时间 我知道如果我使用W = 0它会加速,但它不安全 那有什么建议吗?请帮助我。
答案 0 :(得分:0)
不推荐设置W=0
。这是MongoDB的旧版本(3.0之前版本),他们不建议再使用它。
使用MongoDB作为文件存储系统也不是一个好主意;但是,如果是这种情况,您可以考虑使用GridFS。
我认为你正在尝试某种大规模进口,而你现在没有很多(或任何)读者;在这种情况下,如果任何读者看到一些但不是全部的文件,你会没事的。
您有几个选择:
j=False
。 MongoDB将更快地返回(在文档提交到日志之前),如果数据库崩溃,可能会丢失文档。W=1
。如果复制速度很慢,那么只会等到其中一个节点(主节点)在返回之前有数据。如果你确实需要强大的一致性要求(读者看到目前为止插入的所有内容),这些选项都不会有帮助。
答案 1 :(得分:-1)
您可以使用无序或有序的bulk inserts
这加快了很多事情。也许你看看我的muBulkOps pymongo批量操作的包装。