基于列的方法的另一个重要优势完全基于所有读出的数据量。无论何时你从传统
的数据库中访问数据,你需要读出完整的每一行,而不管你实际所感兴趣的是哪
些域。实际上,这可能意味着读 300个字节的数据仅仅检索 20个字符的数据。
但是,基于列来读取数据,你仅仅需要读出你想要了解的数据。当然,读取一条
单独的记录时,性能上的不同可以忽略,但是许多查询需要进行全表扫描。当读
取数百万行数据时,性能的不同就会非常显著。
Sybase认为,Sybase IQ的列存储天然的比普通的 ROLAP方法提供更佳的性能,
IQ不需要象多数竞争对手或者 Sybase Adaptive Server Enterprise(ASE)一样
支持硬件的并行处理。尤其是,Sybase指出,与数据分区相关的问题就是需要
支持硬件的并行机制。显而易见,不论如何进行分区,分区都会带来很多问题(更
不必说额外的维护了),不过,它打开了性能改进的实质性途径。然而,Sybase
进一步阐述道,这仅仅是对基于行的方法所与生俱来的糟糕性能的一种补偿机制。
Sybase有很多事实支持它的论断,但这并不意味着 Sybase避免任何形式的数据
分区。然而,不同于水平分区,Sybase IQ实施的是垂直分区,也就是说分区是
按照列而不是按照行进行的。该方法的优势之一是分区从来不会变得不均衡,这
是由于每个表中的每列都有相同数量的域。这大大降低了管理分区的维护需求,
同时消除了数据库的重新组织,而在分区变得不均衡从而开始影响性能的时候,
数据库重新组织是必需进行的。
最后,需要注意的是,Sybase IQ并没有避免使用 OLAP。对于那些希望在聚合层
次下以一个相对预先定义的方式进行查询的用户来讲,OLAP具有明显的优势。
基于此,Sybase 支持 OLAP功能属性如排列、百分比、平均。
传统的数据库引擎不能以一种通用的方式进行数据压缩,主要是由于存在以下三
个问题:
1. 按行存储的数据存储方式不利于压缩。这是因为数据(大多为二进制数据)
在以这种方式存储时重复并不多。我们发现,按行存储的数据,最多能有5-10%
的压缩比例;
评论0
最新资源