分布式存储中常见的分片规则
顺序分片
|--------------|
| 1~100 |
|--------------|
|--------------| |--------------| |--------------|
| 1~33 | | 34~66 | | 67~100 |
|--------------| |--------------| |--------------|
特点:
- 支持顺序访问
- 键值和业务相关
- 可能会出现数据
倾斜
第一点,支持顺序访问
因为数据是有序的,可以按照顺序依次的进行访问,第二点,键值和业务相关
1~100 的值可以看作为实际业务当中用户的年龄,第三点,可能会出现数据倾斜
,如果年龄岁数都在1~33那么第一个分片的压力就非常大。
哈希分片
|--------------|
| 1~100 |
|--------------|
hash(key)%3
|--------------| |--------------| |--------------|
| 3,6,9...99 | | 1,4,7...100 | | 2,5,8...98 |
|--------------| |--------------| |--------------|
特点:
- 数据分散度高
- 支持批量操作
- 不支持顺序访问
- 键值和业务无关
数据分散度高,数据倾斜的问题就解决了,就不会造成都给一个分片的压力,支持批量操作这个略,不支持顺序访问因为数据都是分散进行存储的,键值和业务无关因为对数据进行了 hash 处理。