【问题标题】:How insert large amount of data (about 1 million records) per minutes into MongoDB?如何每分钟向 MongoDB 插入大量数据(约 100 万条记录)?
【发布时间】:2020-07-12 07:26:40
【问题描述】:

我想每分钟将大约 100 万条记录插入到单个服务器 MongoDB 数据库中。我有 6 个字段的索引。当数据库为空时,我可以在不到一分钟的时间内将数据快速插入到我的集合中(使用批量插入和多处理)。然而,随着收集中数据量的增加,插入速度大大降低。有什么想法可以处理这样的数据插入吗? (我的数据是关于价格变化的) 谢谢

【问题讨论】:

    标签: mongodb nosql bigdata bulkinsert


    【解决方案1】:

    索引在查找操作的情况下是有益的,其中它执行快速检索包含在数据库中的文档,但应该只在那些用作检索选定信息的过滤器的字段上创建索引。定义过多的索引会导致开销插入和更新操作与每个插入和更新操作一样,这些修改的记录也需要添加到索引数据结构中。

    【讨论】:

    • 谢谢。是的,索引很昂贵。但是,我必须索引我的数据。因为我需要快速报告,例如特定航班/路径/航空公司在一天/一周/一个月内的最低/最高/平均价格(我的数据是关于航班价格变化的)。
    【解决方案2】:

    找出你的瓶颈是什么并解决它。

    服务器 CPU 或磁盘是否受限?提高 CPU 速度或向磁盘添加 IOPS。

    用于索引写入的时间比例是多少?删除所有索引并测量当前数据大小的插入率,然后每次添加一个索引,同时测量每个索引添加的插入率。

    插入率是否会随着数据集大小的增长而线性下降?更快还是更慢?

    MongoDB 公开了许多服务器统计信息,查看它们并确定与吞吐量相关的统计信息,看看您是否发现了任何模式。

    【讨论】:

    • 瓶颈是CPU,因为当collection中的数据量增加时,为了索引数据需要做很多处理。
    • 我指的是观察瓶颈是什么,而不是假设或猜测。您的假设/猜测可能是正确的,也可能是错误的。
    • 我没有说这是我的假设/猜测!我说的是瓶颈!
    • 我在问题中没有看到任何指向这一点的证据。
    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 2017-01-31
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多