柱状数据库中的规范化

Normalization in columnar dbs

我试图了解规范化(如果有的话)在列式数据库(在本例中为 Sybase IQ)中应该扮演的角色。 例如,在传统的基于行的 rdbms 中规范化的优点之一是您不会重复重复数据。我知道柱状 dB 可以处理重复问题。 因此,总而言之,您是否仍应在柱状 dB 的数据建模中使用归一化?

这个话题很大,不能用黄金答案来回答。但我想答案可能很短:

与 select 的性能相比,Sybase IQ 在执行 JOIN 等操作时确实很慢……其中 foo=baa。这也适用于未使用 RLV 的小型 updates/inserts。正如您所提到的,这是由它在内部存储数据的方式引起的。

事实上,当使用 Sybase IQ 时,对数据进行非规范化是有意义的,这样您就可以避免连接等。但是:这使得答案不是 100% 清楚并将其置于 "it depends" 级别:这仅适用于具有中低基数和每次请求访问列数较少的数据,例如通过避免 select * from "foobar"。在这种情况下,它也可能在 IQ 中进行标准化。