mongodb - 如何在 MongoDB 共享集群中分发 GridFS fs.chunks
问题描述
我有一个带有十个分片的 MongoDB 分片/复制集群。大约十天前,我对这个集群进行了批量摄取,它在 GridFS 中有相当大量的数据。根据文档,我在{ files_id : 1, n : 1 }
.
如下图所示,分片中的数据分布非常不均匀。平衡器已启用,但它仍然看起来像这样。(这只是输出的图表db.fs.chunks.getShardDistribution()
。)
我如何强制它重新平衡?我要删除分片 s9 吗?我要手动拆分块吗?我没有看到任何“巨型”碎片列在sh.status(true)
.
另外-如何使用文档中列出的索引来防止将来发生这种情况?
解决方案
您似乎选择了自动生成的 ID 作为通常会产生您所看到的行为的分片键。在此处阅读更多相关信息。使用散列分片键或不同键上的分片。
推荐阅读
- google-chrome - Chrome 随机使用不同版本的 HTTP
- python - 来自 sklearn 的 OneHotEncoder 在传递类别时会给出 ValueError
- javascript - Mixpanel 模拟不断返回为未定义
- c++ - 如何在 VisualStudio 中将 MinGw 编译的库与 MSVC 项目链接?
- php - Laravel如何附加到分页雄辩
- nginx - Nuxt 部署中的“无法访问此页面”
- yaml - 如何从 Python OrderedDict (ruamel) 中删除嵌套条目?
- python - Python中的参数化装饰器
- php - php-fpm 可用的默认模块。哪个?
- html - Google 字体无法在 Safari 中加载