当前位置: 代码迷 >> python >> 如何一次在mongodb中创建100000个条目?
  详细解决方案

如何一次在mongodb中创建100000个条目?

热度:61   发布时间:2023-06-13 14:59:33.0

虽然每次创造100000(即十万 ),但它会崩溃。 我的DB是这样的:

EmbDoc(EmbeddedDocument):
    id = StringField(required=True, primary_key=True)
    field_one = StringField()
    ...

MyDoc(Document):
    emb_doc_list = EmbeddedDcoumentListField(EmbDoc)
    total_emb_doc = IntField()
    ...

现在我希望每个MyDoc都有100个EmbDoc,如果它达到100,我会创建另一个MyDoc。(我的实际数据存在于EmbDoc中)。 为了做到这一点,我查询MyDocs并找到少于100个entires的现有MyDoc并添加一个条目。

如果我尝试创建1000个entires(但在本地计算机上需要大约40秒),这个逻辑工作正常。 但是,当我尝试一次添加大量数据时,它失败了。

任何关于如何解决这个问题的想法都会有所帮助。

问题出在db查询和序列化上。 由于我们每次都在查询所有MyDoc,因此性能受到了影响。
我们开始维护MyDoc idtotal_emb_doc的哈希映射。 现在我们只需查看一下即可获得Doc。
目前,每10000个条目需要10秒钟(带序列化)。

  相关解决方案