有关NULL值和连接性能的存储大小的架构布局

时间:2017-10-05 09:31:59

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

我们正在探索Cloud Spanner作为我们Elasticsearch集群的替代品,目前正在布局我们的数据库架构。

我们想知道是否应该使用一个包含大量可空列的大表,或者我们是否应该选择具有大量一对一子表的精简基表。对于较大的表,我们将有大约2500到1000亿条目(一些表可能更多),因此大规模的连接/聚合可能是一个问题。

  • 列中的NULL值是否需要与定义的列类型的实际值相同的存储空间?

  • Cloud Spanner是否存在像Elasticsearch这样的稀疏值文档的问题?

  • Cloud Spanner如何处理超过十亿个父子文档的联接/聚合?

1 个答案:

答案 0 :(得分:1)

  • Cloud Spanner中的NULL值非常便宜,基本上是免费的。
  • 每个表的列数限制为1024.建议每个单个父键的数据少于4G。请参阅完整的限制列表here
  • 父子连接本身是高效的,因为它作为单次扫描执行。但是,在了解您想要执行的实际查询之前很难说清楚。