行存数据库
‘壹’ 传统关系数据库和列族数据库的区别
列式存储(Columnar or column-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的。简单来说两者的区别就是如何组织表。1)行存储的写入是一次完成。如果这种写入建立在操作系统的文件系统上,可以保证写入过程的成功或者失败,数据的完整性因此可以确定。
2)列存储由于需要把一行记录拆分成单列保存,写入次数明显比行存储多(意味着磁头调度次数多,而磁头调度是需要时间的,一般在1ms~10ms),再加上磁头需要在盘片上移动和定位花费的时间,实际时间消耗会更大。所以,行存储在写入上占有很大的优势。
3)还有数据修改,这实际也是一次写入过程。不同的是,数据修改是对磁盘贺枯森上的记录做删除标记。行存储是在指定位禅亩置写入一次,列存储是将磁盘定位到多个列上分败闹别写入,这个过程仍是行存储的列数倍。所以,数据修改也是以行存储占优。
‘贰’ 行式数据库和列式数据库的优缺点是什么,行式数据库和列式数据库的执行效率比较一下
传统的行式数据库,是按照行存储的,维护大量的索引和物化视图无论是在时间(处理)还是空间(存储)方面成本都很高。而列式数据库恰恰相反,列式数据库的数据是按照列存储,每一列单独存放,数据即是索引。只访问查询涉及的列,大大降低了系统I/O,每一列由一个线来处理,而且由于数据类型一致,数据特征相似,极大方便压缩。行式数据库擅长随机读操作,列式数据库则更擅长大批量数据量查询
‘叁’ 数据库相关的问题:表是由行和列组成的,行也可以称为__,列可以称为___。
表是由行和列组成的,行也可以称为记录,列可以称为字段。
在关系数据库模型中,二维表的列称为属性或者说是字段,二维表的行称为记录或者说是元组。
关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。
关系数据库分为两类:一类是桌面数据库,例如Access、FoxPro和dBase等;另一类是客户/服务器数据库,例如SQLServer、Oracle和Sybase等。一般而言,桌面数据库用于小型的、单机的应用程序,它不需要网络和服务器,实现起来比较方便,但它只提供数据的存取功能。
(3)行存数据库扩展阅读:
行存储和列存储的应用场景
行存储的适用场景:
(1)适合随机的增、删、改、查操作;
(2)需要在行中选取所有属性的查询操作;
(3)需要频繁插入或更新的操作,其操作与索引和行的大小更为相关。
列存储的适用场景:
(1)查询过程中,可针对各列的运算并发执行,在存中聚合完整记录集,降低查询响应时间;
(2)在数据中高效查找数据,无需维护索引(任何列都能作为索引),查询过程中能够尽量减少无关IO,避免全表扫描;
(3)因为各列独立存储,且数据类型已知,可以针对该列的数据类型、数据量大小等因素动态选择压缩算法,以提高物理存储利用率;如果某一行的某一列没有数据,在列存储时,就可以不存储该列的值,这将比行式存储更节省空间。