?> 那么紧接着上一篇的文章内容,如何将数据存储到不同的分片服务器上的? 答:通过分片片键
什么是分片片键
- 可以将文档的一个或多个字设置成分片片键
- 设置完分片片键后, MongoDB 会自动对字段可能的取值进行划分, 划分出一个个的数据段
- 划分完数据段之后, MongoDB 会自动决定哪些分片服务器保存哪些数据段对应的数据
例如:{name:'BNTang', age: 33}
age:min 20 40 60 80 age:max
|-------|------|------|------|------|
分片服务器1 分片服务器2 分片服务器3
|-----------| |-----------| |-----------|
| min-20 | | 80-max | | 40-60 |
| 20-40 | | 60-80 | | |
|-----------| |-----------| |-----------|
!> 注意点:
- 片键可以是一个字段也可以是多个字段
- 只有索引字段才能设置为片键
- 分片服务器保存哪些数据段的值是随机的, 并不是连续的
- 数据段的划分可以使用片键的取值, 也可以使用片键取值的哈希值