MongoDB 分片集群搭建之分片选择分享

一直想找时间把搭建公司 MongoDB 集群时分片的选择总结分享一波,总是忙加上再持续学习其他知识,这篇分享一直断断续续的写,今天终于把整篇完成了,和大家一起分享下我关于 MongoDB 分片选择的一些经验,供大家参考。

分享可能有误,欢迎大家指正。

使用环境

选择 Shard Key 一定要根据应用的使用环境来进行判断,否则将事倍功半!

由于使用 MongoDB 数据库的应用是一个基于物联网的应用,因此数据库将存储大量现场 IOT 硬件发回的数据。在应用中有以下一个非常值得关注而且非常重要的的点:

以上信息在整个 Shard Key 选择中是非常重要的参考依据。

Shard Key 特点

关于 Shard Key 的介绍,可以查看官方文档

Shard Key 可以说是 MongoDB 分片的灵魂了,如果分片键没有选好,整个分片集群就没有起到集群本身的作用,所以,这个分片集群基本上就算废了。

shard key 在分片中的主要特点:

一个好的 shard key 应该具备的特点:

现有 Shard Key 类型

MongoDB 支持2种分片方式:

利弊分析

根据产品的使用场景,需要进行特定的片键选择分析。

以公司 IOT 项目为例,在对采集数据进行 sharding 选择片键时,我们很容易想到:

以上是我做 MongoDB 集群时片键的选择分析,供大家参考。

PS:您可能会想,为什么不考虑以 created_at 在前的组合片键呢?

在看我的想法之前,您可以自己也思考思考。

其实很简单,因为应用不会在不确定 用户 的情况下去搜索某一个时间段内的数据。

总结

选择 Shard Key 一定要根据应用的使用环境来进行判断,否则将事倍功半!

这个非常重要!

logo 闫嵩达 | yansongda

© 2025 yansongda

鄂ICP备12009370号 鄂公网安备 42018502003545号

GitHub