在应用启动前预热数据库

在启动应用之前,我们建议您使用测试数据加载预热数据库,以便利用 Spanner 的并行化功能。

Spanner 是一个分布式数据库,这意味着随着数据库不断增长,Spanner 会将数据的键空间划分为称为“分块”的区块。每个分块是一系列行,其中包含表的子集。当 Spanner 根据负载和大小拆分数据时,会相互独立地动态移动各个分块,并将分块分配给不同的服务器资源,以平衡数据库上的总体负载。

当您最初将数据插入空数据库时,Spanner 会将数据写入单个分块。数据库仍处于“冷”状态。随着您插入更多数据,Spanner 会开始拆分这些数据,以重新平衡其他可用服务器资源之间的负载。现在,Spanner 处于“温”状态,在可用服务器资源之间进行拆分,以最大限度提高并行处理能力并提升性能。

我们建议的最佳实践是,当 Spanner 处于热状态并且已创建分片并在各服务器资源之间均衡分配时,发布应用。如需预热数据库并准备测试数据加载,请按以下步骤操作:

  1. 确保您为测试数据加载生成的主键与用于生产流量的键位于同一键空间中,并且具有相同的分布属性。
  2. 在发布前两天内运行负载测试。在预期的峰值负载下运行负载测试至少 1 小时。负载测试会导致 Spanner 因基于负载的拆分而创建更多分片。
  3. 负载测试完成后,可以从表中删除负载测试生成的行,但不要删除表本身。这样便可以在发布期间使用分片。