同学接触到了列式存储数据库Sybase IQ,采用的是列式存储,我也自己查了一些像SqlServer 2012 等也是。只是简单的探讨了一些,学到点微不足道的知识:
一)首先一般数据都是采用的行式存储,行式存储数据是数据采用行式进行遍历,一行一行的遍历,假设有1万条数据,需要遍历1万行,查找自己的满足条件的数据然后进行返回,这样的话搜索一条数据的某个段就要进行遍历,如果我们需要在某个字段上使其更快,我们就用到了了创建索引。而列式存储就是以每一列为存储结构,故列式存储隐含性的在每个列上创建了索引。
二)列式存储的搜索效率高,修改和更新的效率低。行式存储的效率修改高是因为我们在更新和删除时直接就能找到一行数据,而列式的删除需要遍历列段,对每一列进行定位然后在进行修改和删除,而且数据是采用压缩存储,相同的字段的压缩比会高,而每次数据操作都要进行解压和在压缩存储。故慢(压缩存储我们刚讨论到,有待后续研究)