以下是问题:
如果集合只有默认索引" _id",那么当集合变大时,上传一组文档的时间就是不变的。
但是如果我将以下索引添加到集合中:
db.users.createIndex({"s_id": "hashed"}, {"background": true})
然后,上传同一组文档的时间急剧增加(看起来像一个指数函数)
背景:
我试图在一个集合中插入大约8000万个文档。我没有使用mongo的分片,只有一个实例。
我正在使用python API,这是我的代码:
client = pymongo.MongoClient(ip_address, 27017)
users = client.get_database('local')\
.get_collection('users')
bulk_op = users.initialize_unordered_bulk_op()
for s in iterator:
bulk_op.insert(s)
bulk_op.execute()
client.close()
有15个并发连接(我使用的是Apache Spark,它对应不同的分区)。
该实例有4GB的RAM。 上传完成后,索引的总大小约为1,5GB。
非常感谢你的帮助。