如何在 Cloud Spanner 上获得低两位数毫秒的写入延迟?

问题描述 投票:0回答:1

我在对延迟敏感的应用程序中使用 Cloud Spanner。写入延迟比预期花费的时间要长一些。我可以做什么来减少这些延迟?

我期望低两位数的写入延迟。

database latency google-cloud-spanner
1个回答
0
投票
  1. 确保您选择了最接近您的应用程序的区域。对于多区域配置,请确保将默认领导者设置为最近的区域。 (参考
  2. 检查您是否没有不必要的二级索引。请注意,使用提交时间戳列作为二级索引的第一部分可以创建热点并降低写入性能。
  3. 对于批量写入数据库,请阅读此文档以获得最佳写入吞吐量。如果您要批量插入非空表,请尝试为每个事务使用较小的突变大小。
  4. 为了减少延迟,请使用批量 DML 在单个客户端-服务器往返中向 Spanner 发送多个 DML 语句。此外,在批处理中将类似的 INSERT、UPDATE 或 DELETE 语句分组在一起可以实现更快、更高效的数据更新。 Spanner 自动优化处理连续的批量 DML 语句的方式,这些语句仅在参数值上有所不同,并且不包含复杂的数据依赖性。 (参考
  5. 使用 WHERE 子句来减少锁的范围。要尽可能高效地修改数据,请使用 WHERE 子句,使 Spanner 只读取必要的行。您可以通过主键或辅助索引的键上的过滤器来实现此目标。 WHERE 子句限制了共享锁的范围,并使 Spanner 能够更有效地处理更新。 (参考
  6. 使用分区 DML 进行定期清理和垃圾收集或使用默认值回填新列。分区 DML 通过对键空间进行分区并在单独的较小范围事务中的分区上运行语句,支持大规模、数据库范围的操作,同时对并发事务处理的影响最小。

如需进一步故障排除,请参阅延迟指南中的本节

© www.soinside.com 2019 - 2024. All rights reserved.