Skip to content
困难

一句话答案

数据量大时水平拆分(按行 hash 分到多库多表),中间件选 ShardingSphere,核心问题:跨库 JOIN/分布式事务/全局排序。

核心要点

拆分策略:

策略说明
水平分表按行拆分到多张表(如按user_id hash)
水平分库拆分到多个库实例
垂直分表大字段拆到副表
垂直分库按业务拆库(订单库/用户库)

问题: 跨库JOIN / 分布式事务 / 全局排序分页 / 数据迁移

追问与易错

追问方向:

  • 分库后跨库 JOIN 怎么办?
  • 全局排序分页怎么实现?
  • 分库分表后能回退吗?

易错点:

  • ❌ 单表几百万就要分——取决于查询和性能
  • ❌ 一开始就分库分表——过早优化

💡 记忆锚点

分库分表像图书馆扩建:垂直拆分是按学科分馆(用户库、订单库),水平拆分是同一学科的书按编号分柜(hash 分到多张表)。代价是跨馆借书麻烦(跨库 JOIN)、总馆统计困难(全局排序分页)、搬迁费力(数据迁移)。没到千万级别不要轻易动手。