在新的分片集群中,为什么所有数据都保留在一个分片上?

参与6

2同行回答

Luga LeeLuga Lee系统架构师None
存在以下现象:1、分片策略2、数据量大小显示全部

存在以下现象:
1、分片策略
2、数据量大小

收起
互联网服务 · 2020-03-10
浏览1460
lxuelxue数据库管理员某互联网公司
集群必须有足够的数据才能进行均衡。通过在分片之间迁移 chunk 数据块来进行负载均衡,直到每个分片具有大致相同数量的分块 。默认块大小为 64M 字节。在集群中的 chunk 数据块数量不平衡差异没有超过迁移阈值之前, MongoDB 不会开始迁移 。此行为有助于防止不必要的块迁...显示全部

集群必须有足够的数据才能进行均衡。通过在分片之间迁移 chunk 数据块来进行负载均衡,直到每个分片具有大致相同数量的分块 。

默认块大小为 64M 字节。在集群中的 chunk 数据块数量不平衡差异没有超过迁移阈值之前, MongoDB 不会开始迁移 。此行为有助于防止不必要的块迁移降低整个集群的性能 。

如果刚刚部署了分片集群,请确保有足够的数据来使分片生效。如果没有足够的数据来创建超过 8 个 64 MB 的块,那么所有数据都将保留在一个分片上。要么降低块大小设置,要么向集群添加更多数据 。

作为一个相关问题,系统将仅在插入或更新时拆分块,这意味着如果配置了分片并且不继续发出插入和更新操作,则数据库将不会创建任何块。可以等到应用程序插入数据或手动拆分块 。

最后,如果片键具有低基数, MongoDB 可能无法在数据之间创建足够的分割( chunk 将无法继续分裂) 。

收起
互联网服务 · 2020-03-11
浏览1305

提问者

yeliye
数据库管理员某农信
擅长领域: 数据库大数据服务器

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-03-10
  • 关注会员:3 人
  • 问题浏览:2494
  • 最近回答:2020-03-11
  • X社区推广