我试图在列式数据库(在本例中为Sybase IQ)中理解规范化(如果有)的角色。 例如,传统的基于行的rdbms中规范化的一个优点是,您不会重复重复数据。我知道柱状dB处理重复问题。 那么总结一下,如果你仍然在数据建模中使用标准化的柱状dB?
答案 0 :(得分:1)
这是一个很大的话题,无法用金色答案回答。但我想答案可能很简短:
Sybase IQ在执行JOIN等方面的速度非常慢,而只选择select ...其中foo = baa。这也适用于没有使用RLV的小更新/插入。正如您所提到的,这是由于它在内部存储数据的方式造成的。
事实上,在使用Sybase IQ时,对数据进行非规范化是有意义的,这样可以避免连接等。但是:这使得答案非100%清晰并将其置于“依赖”级别:这仅适用于对于具有低到中基数的数据和每个请求的少量访问列,例如通过避免select * from "foobar"
。在这种情况下,智商也可以进行标准化。