【发布时间】:2020-07-12 07:26:40
【问题描述】:
我想每分钟将大约 100 万条记录插入到单个服务器 MongoDB 数据库中。我有 6 个字段的索引。当数据库为空时,我可以在不到一分钟的时间内将数据快速插入到我的集合中(使用批量插入和多处理)。然而,随着收集中数据量的增加,插入速度大大降低。有什么想法可以处理这样的数据插入吗? (我的数据是关于价格变化的) 谢谢
【问题讨论】:
标签: mongodb nosql bigdata bulkinsert
我想每分钟将大约 100 万条记录插入到单个服务器 MongoDB 数据库中。我有 6 个字段的索引。当数据库为空时,我可以在不到一分钟的时间内将数据快速插入到我的集合中(使用批量插入和多处理)。然而,随着收集中数据量的增加,插入速度大大降低。有什么想法可以处理这样的数据插入吗? (我的数据是关于价格变化的) 谢谢
【问题讨论】:
标签: mongodb nosql bigdata bulkinsert
索引在查找操作的情况下是有益的,其中它执行快速检索包含在数据库中的文档,但应该只在那些用作检索选定信息的过滤器的字段上创建索引。定义过多的索引会导致开销插入和更新操作与每个插入和更新操作一样,这些修改的记录也需要添加到索引数据结构中。
【讨论】:
找出你的瓶颈是什么并解决它。
服务器 CPU 或磁盘是否受限?提高 CPU 速度或向磁盘添加 IOPS。
用于索引写入的时间比例是多少?删除所有索引并测量当前数据大小的插入率,然后每次添加一个索引,同时测量每个索引添加的插入率。
插入率是否会随着数据集大小的增长而线性下降?更快还是更慢?
MongoDB 公开了许多服务器统计信息,查看它们并确定与吞吐量相关的统计信息,看看您是否发现了任何模式。
【讨论】: