【问题标题】:Does binning for monotonically increasing value improve the performance of Google Cloud Spanner?单调递增值的分箱是否会提高 Google Cloud Spanner 的性能?
【发布时间】:2020-07-02 02:13:47
【问题描述】:

Google Cloud Spanner 建议我们避免将索引放在单调递增(非 PK)列上,例如时间戳 (https://cloud.google.com/spanner/docs/schema-design),但我的规范要求按(单调递增)时间戳列进行查询。

我计划通过每 1 分钟(即 10:00:35 -> 10:00:00)对时间轴进行分箱来绕过限制。这适用于 Google Cloud Spanner 吗?

【问题讨论】:

  • 您能否详细说明分箱时间轴的含义?表的主键(或索引的定义)是什么?谢谢。
  • 我打算给时间戳列添加索引,谢谢!
  • 如果我不清楚架构,我很抱歉。通常不建议将时间戳列作为第一个索引列,因为插入是按时间戳递增的顺序完成的,它们可以热点服务于键空间末尾的单个服务器。减轻这种热点的一种选择是使用分片:cloud.google.com/spanner/docs/schema-design#fix_hash_the_key 这可能还需要修改查询以查询所有分片的时间戳(在所需范围内)以适应用例。谢谢。

标签: google-cloud-platform google-cloud-spanner


【解决方案1】:

一般不建议将时间戳列作为第一个索引列,因为插入是按时间戳递增的顺序完成的,它们可以热点服务于键空间末尾的单个服务器。减轻这种热点的一种选择是使用分片: https://cloud.google.com/spanner/docs/schema-design#fix_hash_the_key

这可能还需要修改查询以查询所有分片的时间戳(在所需范围内)以适应用例。

【讨论】:

  • 感谢您的热情回复!那么我是否创建使用时间戳列(例如获取最新记录)作为与分片相同的数字的查询?
  • 是的。要获得所有分片的最新时间戳的全局视图,您需要查询所有分片。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-28
  • 2017-07-05
  • 2017-10-24
  • 1970-01-01
  • 2015-03-10
  • 2021-08-29
  • 1970-01-01
相关资源
最近更新 更多