MongoDB Shard集群大批量数据导入优化

admin 2021年9月1日14:55:48评论43 views字数 666阅读2分13秒阅读模式

0x00

起因是需要往MongoDBShard分片集群导入两个T(十亿文档)级别的数据。其中遇到了各种很严重的性能问题,在这里做一下记录。

0x01 索引

在导入数据时,尽量不提前建立索引,仅建立必须的shard_key

0x02 批量写入

在进行大批量导入时,尽量使用insert_many进行批量写入。若写入顺序不重要的话,可以设置ordered=False来提高速度。

0x03 SHARD_FILTER问题

若从一个Shard集群读取数据,并且读取的规则为Secondary Preferred,在查询时会缺少SHARD_FILTER阶段。
在项目中遇到一个问题:集群中两个分片都保有同一条数据。
在这种情况下,若是没指定Primary Preferred,则可能造成一条数据返回两次的情况。而经过了SHARD_FILTER阶段,会自动过滤掉多余的数据。

0x04 其他问题

  • 假若分片不均,可以使用hashed索引作为分片索引
  • 假若导入的集合已存在使用过的索引,那么这个索引存在缓存,可能会导致分片不均。此时删除重建即可。
  • 使用insert_many批量导入完成之后,可能会存在文档数量过多的情况,这是正常的,等待数据库自动平衡去重即可。

FROM :rickyhao.com | rickyhao.com

相关推荐: Pwn2Own高通DSP

备注: 原文地址:Pwn2Own Qualcomm DSP - Check Point Research 原文信息:May 6, 2021Research By: Slava Makkaveev 原文标题:Pwn2Own Qualcomm DSP 介绍 骁龙是…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年9月1日14:55:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   MongoDB Shard集群大批量数据导入优化http://cn-sec.com/archives/499657.html

发表评论

匿名网友 填写信息