分布式数据库中的垂直扩展是指增加数据库系统中单个节点的容量,例如为单个服务器增加更多的 CPU、内存、存储或其他资源。这种方法侧重于提升现有机器的性能,而不是增加集群中的节点数量。例如,如果一个数据库节点难以处理增加的查询负载,将其 CPU 从 8 核升级到 16 核或将其 RAM 从 64GB 扩展到 256GB 都属于垂直扩展。这种方法的实现通常更简单,因为它不需要改变数据库的架构或数据分布逻辑。然而,它存在固有的限制,因为硬件升级在达到物理或成本上限之前能达到的程度有限。
垂直扩展的一个常见用例是当工作负载可预测地增长且不需要立即进行水平扩展时。例如,为分析平台提供支持的分布式数据库可能会经历数据量的逐渐增加。升级单个节点的存储或处理能力可以在不重新配置分片或复制策略的情况下暂时解决性能瓶颈。另一个例子是那些并非为水平扩展而设计的遗留系统——垂直扩展可以在最大限度减少操作复杂性的同时实现增量改进。然而,这种方法最适用于工作负载并非高度分布,或当特定节点处理隔离任务时(例如,在主从设置中管理写入的主节点)。
分布式系统中垂直扩展的主要缺点是成本和可扩展性限制。高端硬件会变得指数级昂贵,而且单台机器的处理能力存在上限。例如,一个拥有 2TB RAM 的节点的成本可能远高于将相同工作负载分散到十个较小节点上。此外,垂直扩展在升级期间可能引入停机时间,这与分布式数据库的高可用性目标相冲突。虽然垂直扩展是解决短期需求的快速方案,但大多数分布式数据库优先考虑水平扩展(增加节点)以实现长期可扩展性。尽管如此,垂直扩展在混合场景中仍然有用——例如,提高协调节点的容量以更有效地管理元数据,同时依赖水平扩展进行数据存储。