EmpId Lastname Firstname Salary
1 Smith Joe 40000
2 Jones Mary 50000
3 Johnson Cathy 44000
这个表存储在电脑的内存和硬盘中。数据库必须把这个二维表存储在一系列的一维“字节”中,又操作系统写到内存或者硬盘中。
行式数据库把一行中的数据值串在一起存储起来,然后再存储下一行数据
1,Smith,Joe,40000;2,Jones,Mary,50000;3Johnson,Cathy,44000;
列式数据库把一列中的数据值串在一起存储,然后再存储下一列的数据,以此类推。
1,2,3;Smith,Jones,Johnson;Joe,Mary,Cathy;40000,50000,440000;
对于传统行式数据库。数据库按行存储,没有索引的查询使用大量I/O建立索引和物化视图需要花费大量时间和资源,面对查询需求,数据库必须被大量膨胀才能满足性能需求。
对于列式数据库,数据库按列存储,数据即索引。只访问查询涉及的列-大量降低系统IO每一列由一个线程来处理-查询的并发处理 数据类型一致,数据特征相似-高效存储。
这2种数据库的设计所考虑的最大的一个因素是——硬盘运行的方式。硬盘的机械结构决定了它的特点寻道速度慢,连续读取速度快。列式数据库的优点将列存储在同一区域,那么在单列查询的时候减少了硬盘的寻道操作数。而行式数据库在定位到某一行后,读取这行中内容成为连续操作,速度会快。
那么总结来看,列式数据库的各种优点让它适合于做大规模数据存储,保证硬盘的低寻道,高吞吐的大数据读写。而行式数据库适合少量数据快速定位和读写操作,灵活度更大。