分库分表有哪些策略?
分库分表面试题发布于
一、垂直拆分
- 垂直分库:按业务拆分库,如用户库、订单库、商品库。
- 垂直分表:按字段拆分表,如主表存常用字段,扩展表存大字段。
- 解决:单库压力、单表字段过多。
二、水平拆分
- 水平分库:同一张表数据按规则分到多个库。
- 水平分表:同一张表数据按规则分到多张表。
- 解决:单表数据量过大。
三、分片规则
- 范围:按时间或 ID 范围,如 2023 年一个表,2024 年一个表。易扩展但热点问题。
- 取模:user_id % N,均匀分布但扩容需迁移。
- 一致性哈希:节点变化时只迁移部分数据。
- 枚举:按省份、状态等枚举值分片。
四、选择
- 数据量大且增长快 → 水平拆分。
- 业务清晰 → 垂直拆分。
- 生产常用:垂直分库 + 水平分表组合。