行式数据存储:
每个记录把所有的列相邻地存放。
优点:多个列的值,可以一次I/O都得到;适合于OLTP,同时需要读写同一个记录的多个列的值。
但是,对于数据分析操作,只使用少数列。所以,不适合。
列式数据存储:
每个列产生一个文件,存储所有记录中该列的值。
列式存储的原因:
数据仓库的分析查询,大部分情况只涉及一个表的少数几列;会读一大部分记录。
在这种情况下,行式存储需要读很多无用的数据。
采用列式存储可以降低读的数据量。
列式存储的压缩。每个文件存储相同数据类型的值,数据更容易被压缩,比行式存储有更高的压缩比。
列式存储的问题:
如果用到了一个表的多个列;多列需要拼装在一起,付出拼装代价。
解决这一个问题:(1)数据存储两份,一份行式,一份列式。
(2)如果多个列总是一起使用,那么就把它们存在一起。