本文对行式数据库与列式数据库进行对比,并讲解如果根据GIS相关系统及业务需求选择对应的数据库系统;
定义
列式存储(Column-based)是相对于传统关系数据库的行式存储(Row-based)定义的,简单的说两者的区别就是如何组织表。
将表放入存储系统中有两种方式,而绝大部分是采用行存储的。行存储是将各行放入连续的物理位置,这很像传统的记录和文件系统。列存储是将数据按照列存储到数据库中。下图是行、列两种存储方式的图形化解释。
行、列存储结构
应用行式存储的数据库系统成为行式数据库,同理应用列式存储的数据库系统称为列式数据库。
传统的GIS关系型数据库,如postgres、mysql、sql_server等采用行式存储。新兴的HBase等分布式数据库采用列式存储,当然这些数据库也有对行式存储的支持比如HP Vertica。随着传统关系型数据库与新兴的分布式数据库不断的发展,列式存储与行式存储会不断融合,数据库系统会呈现双模式数据存放方式。
区别
传统的行式存储的数据满足OLTP应用,列式存储的数据满足以查询为主的OLAP应用。
行、列数据库区别为什么列存储可以大幅降低系统的I/O
列式存储的主要优点之一就是可以大幅降低系统的I/O,尤其是在海量数据查询时,I/O向来是系统的主要瓶颈之一。下面以图进行详解
优势详解
网友评论