
集群和分布式怎么选,是数据库架构设计绕不开的第一问。本文给一套可直接执行的判断方法:先用三个硬指标判断「该不该上分布式」,再用三步清单把架构落定,最后看清三条技术路线各自的边界。
在谈架构之前,先用三个硬指标过滤:
维度 | 集中式大概率够用 | 认真考虑分布式 |
|---|---|---|
数据量 | 单表千万级以内、总量 10TB 以内 | 单表上亿、总量 50TB 以上 |
并发 | QPS 万级以内 | QPS 5 万以上且持续增长 |
高可用 | 可接受分钟级恢复 | RPO=0、RTO 秒级 |
规则很简单:三个问题至少两个回答「是」,才值得认真考虑分布式。 多数场景连第一个「是」都够不着。

第一步:瓶颈是「机器扛不住」还是「数据扛不住」?
第二步:第一目标是「高可用」还是「高吞吐」?
第三步:数据要不要拆?

判断和路线都定了,落地才是真正开始。三个坑,几乎每个上分布式的团队都会遇到:
坑一:分片键选错,扩了等于没扩。 分片键必须跟真实查询模式对齐——按用户 ID 拆,却天天按订单号跨片查,就是典型反例。先摸清访问模式,再定分片键,并把跨片查询压到最少。
坑二:跨分片 JOIN 把性能吃光。 数据拆开后,原来一条 SQL 能做的关联,现在要跨节点拉数据。能冗余的字段就冗余,能压成宽表的就压宽表,把 JOIN 留在分片内解决。
坑三:分布式事务方案没提前选。 跨分片写入绕不开 2PC、TCC、SAGA 的取舍——2PC 强一致但阻塞重,TCC 性能好但侵入业务,SAGA 最终一致但要有补偿。上线前先定方案,别等出了脏数据再补。
选型核心不是「够不够快」,而是 「扩不扩得动、稳不稳得住」。上线前过一遍这份清单:
把瓶颈识别清楚,架构自然落定。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。