数据分区
数据分区的底层逻辑是 :-> 将一张表的数据按某种规则(如范围、哈希或复合条件)划分为多个逻辑子集,称为分区。
分区的好处
查询性能角度 :-> 按特定规则分区,查询时仅访问相关分区数据,减少 I/O 操作,加快查询速度
管理角度 :-> 把大表拆分为小且易管理的块,方便数据的维护、备份、恢复等操作
数据隔离角度 :-> 可将不同类型或不同时间范围的数据分隔,简化数据管理流程,也利于权限控制等
数据分区算法范围分区
- 原理 :-> 根据数据在某个维度上的连续范 围, 如日期、 数字大小等划分,每 个分区存储特定范围的数据
- 场景 :-> 时间序列数据(如按日期存储的日志、交易记录), 有明显数据范围区间(如按年龄区间存储的用户信 息),方便进行范围查询的数据场景
列表分区
- 原理 :-> 按照离散值列表进行分区, 将具有 特定离散值的数据划分到同一分区
- 场景 :-> 数据值可枚举且有限的场景,如按地区(固定几个地 区选项)、性别(男/女)等维度进行分区的数据
哈希分区
- 原理 :-> 通过哈希函数计算数据的哈希值, 依据哈希值将数据分配到不同分 区,能让数据较为均匀分布
- 场景 :-> 数据分布需要尽量均匀, 对负载均衡要求较高的场 景;不太需要范围查询,更注重随机读写性能的场景, 如大规模用户数据的存储,可按用户 ID 哈希分区
复合分区
- 原理 :-> 组合使用多种分区类型, 先按一种 规则进行粗粒度分区, 再在每个分 区内按另一种规则细分
- 场景 :-> 数据量极大且具有多种特征维度的复杂场景,如既需 要按时间范围(范围分区)又需要按业务类型(列表 分区)进行管理的数据