为什么要按列保存
列存储(Columnar or column-based )与传统关系数据库的线性存储(Row-basedstorage )相对。 简而言之,两者的区别在于如何组织表格。
行- basedstoragestoresatableinasequenceofrows。
column-basedstoragestoresatableinasequenceofcolumns。
举个例子:
如上图所示,线路存储器下表中的所有数据都放在一起,但分别存储在列存储器下。 所以,它有以下优缺点。
注意:这是关系数据库理论的回顾-选择(Selection )和投影(Projection )
数据压缩
我刚才跳过了资料中提到的另一个技术。 用词典表压缩数据。 为了面后的说明,这个部分也顺便提到了。
接下来是那个表本来的样子。 字典表经过数据压缩后,表中的字符串都是数字。 正因为各个字符串只在词典的表中出现一次,才达到了压缩的目的(像正规化和非正规化的Normalize和Denomalize )。
下图中的查询执行性能最明显。 通过一个查询的执行过程说明列存储(和数据压缩)的优点
关键步骤如下:
1 .在词典的表中找到字符串对应的数字(只进行一次字符串比较)。
2 .用数字匹配列表,并将匹配上的位置设为1。
3 .对不同列的匹配结果进行位运算得到满足所有条件的记录下标。
4 .用这个下标组装最终的结果集。
原文:
3359 blog.csdn.net/DC _ 726/article/details/41143175
--end--
扫描下方的二维码
添加朋友,备注【交流群】
带你去学习途径和资源丰富的交流群