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



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

我们

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

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

  • Cloud Spanner 对像 Elasticsearch 这样的稀疏值文档有问题吗?

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

  • Cloud Spanner 中的 NULL 值非常便宜,基本上是免费的。
  • 每个表的列数限制为 1024。还建议每个父密钥放置少于 4G 的数据。在此处查看完整的限制列表。
  • 父子联接本身是有效的,因为它作为单个扫描执行。但是,在知道要执行的实际查询之前,很难判断。

最新更新