立足传统关系
数据库,例如Oracle鲲DB2鲲MySQL鲲SQL服务器,基于使用的存储行(行为主)。在基于行的存储数据库中,数据连续地基于行数据存储在逻辑存储单元中。数据以连续存储的形式存在于存储介质中。
我们知道当前的
数据处理大致可以分为两类,在线事务处理OLTP(在线事务处理)和在线分析处理OLAP(在线分析处理)。 OLTP是传统的关系数据库,用于执行基本的日常事务处理鲲,如增加的记录的主要应用数据库鲲鲲验证删除鲲变化等; OLAP是分布式
数据库的主要应用是实时性要求不是很高,但处理的数据量较大,一般适用于复杂的动态系统的报告。
OLTP和OLAP的主要区别。
OLTP和OLAP,为什么数据库的应用程序类别存在显着差异?实际上,这是由于数据库的不同存储模式。
行存储和列存储
立足传统关系数据库,例如Oracle鲲DB2鲲MySQL鲲SQL服务器,基于使用的存储行(行为主)。在基于行的存储数据库中,数据连续地基于行数据存储在逻辑存储单元中。
数据以连续存储的形式存在于存储介质中。
基于列的存储与在线存储相关,分布式数据库(如新的Hbase鲲HP Vertica鲲EMC Greenplum)使用列存储。在基于列的存储的数据库中,数据基于列存储在逻辑存储单元中,并且列中的数据以连续存储的形式存在于存储介质中。适用的在线存储方案包括:
1鲲适用于添加,删除和更改的随机操作;
2鲲必须选择行中所有属性的查询操作;
3鲲需要频繁的插入或更新操作,其操作与索引和行的大小更相关。
在实践中,我们会发现行数据库在读取数据时会有一个固有的“缺陷”。例如,如果所选查询的目标仅涉及少数属性,则目标数据将隐藏在每行数据单元中。在中间,行单元通常非常大,应用程序必须读取每个完整行记录,这大大降低了读取效率。从这个意义上说,行数据库给出的优化方案是添加“索引”。在OLTP类型的应用程序中,索引操作机制或表分区可以简化查询操作的步骤并提高查询的效率。