分库分表有哪些策略?

分库分表面试题发布于

一、垂直拆分

  • 垂直分库:按业务拆分库,如用户库、订单库、商品库。
  • 垂直分表:按字段拆分表,如主表存常用字段,扩展表存大字段。
  • 解决:单库压力、单表字段过多。

二、水平拆分

  • 水平分库:同一张表数据按规则分到多个库。
  • 水平分表:同一张表数据按规则分到多张表。
  • 解决:单表数据量过大。

三、分片规则

  • 范围:按时间或 ID 范围,如 2023 年一个表,2024 年一个表。易扩展但热点问题。
  • 取模:user_id % N,均匀分布但扩容需迁移。
  • 一致性哈希:节点变化时只迁移部分数据。
  • 枚举:按省份、状态等枚举值分片。

四、选择

  • 数据量大且增长快 → 水平拆分。
  • 业务清晰 → 垂直拆分。
  • 生产常用:垂直分库 + 水平分表组合。