你真的了解列式数据库吗

传统的关系型数据库是行式数据库,因为关系数据库是按照行来存储数据的,而列式数据库就是按照列来存储数据的数据库。

行式数据库的主要优势有以下两点。第一点是业务同时读取多列的时候,效率比较高,因为这些列都是按行存储在一起的,一次磁盘操作就能够把一行数据中的列都读到内存中,第二点,是能够一次性完成对一行中多个列的写操作,保证了针对行数据写操作的原子性和一致性。

但是在海量数据统计分析的场景下,行式数据库就会显示出劣势。例如统计计算某个城市体重超重的人员数据。实际上只需要读取每个人的体重这一列进行统计分析即可。但是行式存储的情况下,即使只使用一列也会将所有行的数据都读取出来。在这种情况下,列式存储的优势就会体现出来。

列式存储除了节省io以外,还具备更高的存储压缩比,能够更节省存储空间。普通的行式数据库的压缩率一般在3:1到5:1左右,而列式数据库的压缩率一般在8:1到30:1左右。这是因为单个列的数据相似性更高,所以能够达到更高的压缩率。

基于以上的分析,一般将列式存储应用在离线的大数据分析和统计场景中,因为这种场景主要是针对部分列进行操作,并且数据写入后无需再更新和删除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章