分片键
这里列举常见的分片键字段
用户id:按照买家id或卖家id分片
订单号:按照订单号分片
创建时间:按订单创建时间分片
同时选择多个字段:比如说按所在城市,然后再按创建时间分片
分布式ID生成规则
- 数据库奇偶数生成
- redis原子自增,zookeeper生成自增
- 雪花算法
- 预分配(预分配号段,美团Leaf框架原理)
分片规则
这里列举常见的分片规则
哈希
比如针对订单号按哈希分片。
优点:哈希分片数据分布均匀,不容易出现热点问题
缺点:后期迁移和扩容需要迁移旧数据,有一定的维护成本
时间
按创建时间分片,年,月,日
优点:天然水平扩展
缺点:按时间分片容易出现热点问题,近期时间访问量大,远期时间访问量少
数值范围
比如1-2000W,2000W-4000W
其他分片键和分片规则
电商订单:可以按跟人相关的维度分片,比如说买家id,买家id.
文章内容:娱乐社交行业中,详情页对应评论可以按,文章id分.
这里确定分片键的原则,主要还是以满足系统访问场景最多,访问频次最高的的功能确定分片键。
如果有无法确定一个分片键,比如说订单按买家id分片,那卖家也要用订单数据,也要兼顾卖家的需求,可以用另外表按卖家维度继续分库分表