行式数据库和列式数据库的浅析

1  比较

行式数据库,按行进行存储和读取的数据库,目前是指现在的关系型数据库。列式数据库,按列进行存储和读取的数据库,目前是指nosql数据库,比如hbase.

行式数据库。 一个数据文件由若干个块组成,表中的数据,以行为单位向块中存放,当到达块容量的某个比率时(每个块都预留一部分空间用于update,为了防止行偏移,即当update时,如果现在的数据库比以前的数据占更多的空间的时候,不至于存放到其他块中);取数据时,比如取行中的某几个列,先将整行数据取出来,再将目标列进行过滤出来。 数据都是结构话数据,所以,对于update比较方便,事务和索引机制比较完善。

列式数据库。 以列进行存储和读取。

2  瓶颈。

列式数据库的操作,主要都是批量插入数据和读取数据,从内存中向硬盘中批量写数据, 瓶颈在于磁盘的IO速度。行式数据库,比较擅长的是随机读写,所以它的瓶颈在于磁盘的寻道时间. 目前磁盘的传输速度发展很快,但是磁盘的寻道速度却没有得到很大的提高。

3 使用场景

列式数据库的特点决定了它的适用场景是大量的插入同时又有读的情况,但是随机读写这块有所欠缺,基于key-value的查询模式,对于一些复杂查询不支持,一般在数据分析的场景。 行式数据库的适用场景是数据量不大的情景下都比较实用,尤其是update较多的场景,对于处理大数据不太适用。

原文地址:https://www.cnblogs.com/kangls/p/3584040.html