PlanetScale 如何让 768 台服务器像 1 台

Making 768 servers look like 1

PlanetScale 如何让 768 台服务器像 1 台

当应用用户量达到数百万,每秒查询量激增时,单台数据库服务器早已不堪重负。单纯增加 CPU 或添加只读副本(replicas)只能缓解读取压力,却无法解决写入瓶颈和存储容量限制。为了解决 Postgres 和 MySQL 在 PB 级数据下的扩展难题,PlanetScale 采用了数据库分片(sharding)技术。通过将数据分散到 768 台服务器上,并利用 Neki 或 Vitess 等智能代理层(proxy layer)作为路由,系统能够自动决定数据落点和查询路径。最终,对应用层而言,这庞大的分布式集群就像是一台单一、高性能的数据库,彻底隐藏了底层的复杂性。

我们希望让应用服务器从与复杂系统的交互中解脱出来,转而通过单一连接字符串进行连接,使其看起来像是在与一个庞大且可扩展的单体数据库进行交互。
  • 有评论者指出分片(sharding)并非扩展关系型数据库的必然选择,Oracle RAC 等架构已能实现非分片数据库的水平扩展,让数百台服务器像一台机器一样同步工作。
  • 一位从业者反驳了'分片是现实限制'的观点,认为许多初创公司因不了解替代方案而陷入不必要的数据库扩展痛苦,这更多是架构选择而非计算机科学定律。
  • 文章作者回应称,虽然单分片查询是首选,但跨分片操作在特定场景下不可避免,且像 CashApp 和 GitHub 等公司确实需要数百台服务器来支撑其业务规模。
  • 有评论者强调,数据库扩展瓶颈往往出现在备份和恢复的网络传输环节,对于百 TB 级以上的超大规模数据库,网络带宽是比单服务器性能更关键的制约因素。

同日更多故事

2026-07-16