大家好,我是小耶,写功课只是为了我踩过的坑,你们别再踩了!
中国信通院《2024数据库发展白皮书》显示,超过六成的政企用户在核心系统升级中,将“架构可演进性”列为关键选型维度。然而在实际技术选型中,集中式、分布式、云原生这三个概念经常被混用——很多团队以为自己在做分布式架构,实际上只是主从集群;而真正需要水平扩展的场景,又可能因为误判被局限在集中式方案中。
这三种架构各自解决不同阶段的问题,选错了,后期改造成本会成倍增加。今天把这件事从原理到选型彻底讲清楚。
一、集中式:单机或主从,简单稳定
架构原理
数据全部放在一台服务器上,或者一个主从集群里。应用连接一个数据库实例(或通过中间件路由),所有读写操作都在这个实例上完成。
集中式有三种典型部署形态:
| 形态 | 结构 | 特点 |
|---|---|---|
| 单机 | 一台服务器,一个数据库实例 | 最简单,无冗余 |
| 主从 | 一台主库写,多台从库读 | 读扩展,写仍集中 |
| 主备 | 一台主库服务,一台备库同步 | 高可用,切换需人工或自动 |
核心特征
-
事务处理逻辑简单:单机事务,不需要分布式协调
-
数据一致性容易保证:所有数据在一台机器上,没有跨节点同步问题
-
扩展能力受限:垂直扩展(升配)有物理上限,无法水平加节点
-
运维成熟:备份、恢复、监控体系成熟,DBA学习成本低
代价
单机写入能力有天花板。主库的CPU、内存、磁盘IO决定了整个系统的写入上限。读可以通过加从库分散,但写不行。
二、分布式:分片与副本,水平扩展
架构原理
数据自动分片到多台服务器,应用连接分布式数据库集群,集群内部负责数据路由、事务协调、结果汇聚。
分布式有两种主流架构:
Shared-Nothing(无共享架构)
每台机器有独立的CPU、内存、存储,节点之间通过网络通信。数据按分片规则分布在不同节点上。代表产品:TiDB、OceanBase、金仓KES Sharding。
Shared-Disk(共享存储架构)
多个计算节点共享同一份存储,每个节点有独立的CPU和内存。数据不需要分片,所有节点都能访问完整数据。代表产品:Oracle RAC、金仓KES RAC。
| 架构 | 数据分布 | 扩展方式 | 代表产品 |
|---|---|---|---|
| Shared-Nothing | 分片存储,每节点一部分 | 加节点,数据重分布 | TiDB、OceanBase |
| Shared-Disk | 共享存储,每节点完整访问 | 加节点,共享同一存储 | Oracle RAC、KES RAC |
核心特征
-
水平扩展能力强:加机器就能提升容量和性能
-
高可用性好:节点故障自动切换,部分节点宕机不影响整体服务
-
架构复杂度高:分布式事务需要2PC,跨节点JOIN需要数据重分布
-
运维门槛高:多节点管理、故障排查、性能调优都比单机复杂
代价
跨节点事务需要两阶段提交,性能比单机事务低;跨节点JOIN需要数据重分布,查询复杂度高;运维需要管理多个节点,故障排查难度大。
三、云原生:存算分离,弹性伸缩
架构原理
计算节点和存储节点独立部署。计算节点无状态,可以按需扩缩容;存储层通常基于分布式存储或对象存储,数据持久化与计算解耦。
核心特征
-
计算存储独立扩展:计算不够加计算节点,存储不够加存储节点
-
按需付费:用多少算多少,闲置时成本归零
-
秒级弹性扩缩容:流量突增时快速扩容,流量回落后自动缩容
-
天然适合云环境:与云平台的监控、安全、网络体系深度集成
代表产品:PolarDB、GaussDB、阿里云AnalyticDB。
代价
存算分离带来了网络延迟——计算节点访问存储节点需要经过网络,延迟比本地存储高。对于延迟敏感的业务,需要额外的缓存层来弥补。
四、三种架构对比
| 对比维度 | 集中式 | 分布式 | 云原生 |
|---|---|---|---|
| 数据分布 | 单机/主从 | 多节点分片 | 存算分离 |
| 扩展能力 | 垂直扩展(升配) | 水平扩展(加节点) | 弹性扩缩容 |
| 事务复杂度 | 低(单机事务) | 高(分布式事务) | 中 |
| 运维复杂度 | 低 | 高 | 中 |
| 成本模型 | 固定投入 | 固定投入 | 按需付费 |
| 适用场景 | 中小规模业务 | 大规模核心系统 | 云上弹性业务 |
一个类比帮你记住:
-
集中式 = 一家小卖部:一个老板、一个收银台,忙得过来就够用
-
分布式 = 连锁超市:每个分店负责一部分区域,总部统一调度
-
云原生 = 共享厨房:没有自己的后厨,需要时租一间,按使用时间付费
五、什么时候该从集中式升级到分布式
这不是一个“要不要”的问题,而是一个“什么时候”的问题。
信号一:单机写入能力接近上限
主库CPU持续超过70%,写入TPS接近单机极限。加从库只能分担读,写瓶颈无解。
信号二:单表数据量突破千万级且持续增长
单表超过1000万行后,索引维护成本、DDL执行时间、备份恢复时间都会显著上升。
信号三:需要在线扩容且停机窗口有限
业务增长需要扩容,但可接受的停机窗口越来越短。集中式扩容需要停机或主从切换,分布式支持在线扩容。
信号四:高可用要求达到RPO=0、RTO秒级
集中式主从复制的异步模式存在数据丢失风险,切换需要人工介入。分布式多副本一致性协议天然支持自动切换。
六、2026年趋势:集分融合
三种架构不是非此即彼。2026年的趋势是集分融合——同一套数据库产品,既能以集中式形态部署,也能平滑升级为分布式。
金仓KES就是这一趋势的代表。单机部署时是轻量级集中式,需要扩展时可以平滑升级为分布式集群(KES Sharding)。你不需要在选型时就被迫做“集中式还是分布式”的单选题,而是根据业务发展逐步演进。
这种设计思路正在成为主流。OceanBase的“单机分布式一体化”、TiDB的“轻量级部署模式”,都是同一个方向——让用户不必在架构选型上做不可逆的决策。
七、选型决策框架
| 判断条件 | 推荐架构 |
|---|---|
| 数据量<10TB,单表<1000万行 | 集中式(主从/主备) |
| 数据量>50TB,单表>1亿行 | 分布式(Shared-Nothing) |
| 要求RPO=0、RTO秒级 | 分布式(Shared-Disk或Shared-Nothing) |
| 云上业务,流量波动大 | 云原生(存算分离) |
| 信创环境,需要平滑演进 | 集分融合架构(KES等) |
八、小结
按部署架构分类,数据库经历了集中式、分布式、云原生三个阶段。集中式简单稳定,适合大多数业务;分布式扩展性强,适合大规模核心系统;云原生弹性好,适合云上业务。2026年的趋势是集分融合——同一套产品支持多种部署形态,让架构选择不再是“一次定终身”。理解三种架构的原理和边界,才能根据业务阶段做出最务实的选择。
小耶在手,SQL 不愁
还有什么想了解的,欢迎留言!小耶一定知无不言言无不尽……我们下次见~