一种行列混合的数据库存储方法

文档序号:6369178阅读:2119来源:国知局
专利名称:一种行列混合的数据库存储方法
技术领域
本发明涉及一种数据库存储数据技术,尤其涉及ー种面向应用的存储海量非结构化数据对象的行列混合存储方法。
背景技术
目前,数据库管理系统管理的数据以行、列的ニ维表形式呈现,行对应着记录,列对应着记录的字段。传统的行式数据库在存储数据时,把一行的数据值作为ー个一维字符串写入到内存或硬盘中,因此如果要查询某条记录的某个字段值,则需读取整条记录。但对于查询密集型应用来说,大多数查询往往只用到记录的一部分字段值。采用行存储技术,会导致系统在数据的读取和存储上存在以下几个不足之处,在性能上无法满足应用的需求。首先,虽然只用到记录的一部分字段,但现有的行存储技术使得系统必须将整条记录全部读取到缓存中,这样不仅导致数据读取速度降低,I/o开销过大,并且加载不需要的字段也浪费了宝贵的缓存空间,降低缓存命中率,使得后续数据处理延迟,系统的性能受到影响。其次,记录的字段可分为查询常用字段和非常用字段,如果将非常用字段放在廉价设备上,可降低存储成本。但现有的行存储技术特点决定了常用字段和不常用字段在磁盘上是连续存储的,占用了同样的存储资源。这不利于资源设备的合理分配。列式数据库的出现在一定程度上弥补了行式数据库的以上不足。它的特点是将记录按列进行存储。但这也导致它在查询应用时存在着ー些问题。例如,如果查询应用的需求是根据某一列的值进行查询计算,得到相关度最高的前若干条记录编号,并返回这若干条记录的某些指定列(字段)的值。列式数据库在实现这一需求时,因为记录是按列存储的,所以在根据某列的值查询并得到相关记录编号后,并不能立即得到记录的其他指定列的值,而是还需要先查找这些指定列,然后再从这些指定列中查找记录,读取出记录的对应值。这ー查找过程降低了查询的性能。

发明内容
为解决上述中存在的问题与缺陷,本发明提供了一种面向应用的存储海量非结构化数据对象的行列混合的数据库存储方法。所述技术方案如下ー种行列混合的数据库存储方法,包括创建表及表对应的物理存储空间,根据应用需求确立列和物理存储空间的对应关系;向表中插入记录,并按列和物理存储空间的对应关系进行分组;将记录的列值作为行写入到对应的物理存储空间中。本发明提供的技术方案的有益效果是通过本发明提供的行列混合存储方法有效地避免了全表查询,降低了 I/O开销,、提高了数据读取的速度和全文数据库的查询性能。


图I是行列混合的数据库存储方法流程图;图2是表的存储架构设计图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进ー步地详细描述 本实施例提供了ー种行列混合的数据库存储方法,其中,參见图I,该方法包括以下步骤步骤10创建表及表对应的物理存储空间,根据应用需求确立列和存储空间的对应关系;步骤20向表中插入记录,并按列和物理存储空间的对应关系进行分组;步骤30将记录的列值作为行写入到对应的物理存储空间中。上述步骤10创建表包括创建表的名称、字段及分配表所需的物理存储空间,确立列和物理存储空间的对应关系,上述列即为字段。本实施例中,每个表都对应ー个或多个物理存储空间(如图2所示),创建表时如果不作特别的指定,系统将自动分配一个默认的物理存储空间。创建表后,也可以根据数据的动态变化对所需空间进行评估,申请创建新的存储空间。对于表中的字段,在创建表时可以指定它存储在哪ー个物理存储空间中,这样可以将使用频率较高的列(字段)连续存储在同一个存储空间,以提高数据读取的效率。上述步骤20中,在向表中插入记录时,为记录创建一个在该表中唯一的标识号,并将记录按列(字段)切分;根据字段和物理存储空间的映射表,将列值(字段值)进行分组,对应着同一个物理存储空间的列的列值(字段值)被划分到同一组,每ー组可以视为ー个行向量。上述步骤30在通过将记录的列值(字段值)分组后,将列值组作为一个行向量(一个ー维字符串),写入到对应的物理存储空间。由于物理存储空间中的数据时按记录标识号进行有序存储的,因此插入行向量的具体位置也根据记录标识号的大小来确定。如果该对应物理存储空间已满,无法执行插入,则申请开辟ー个新的物理存储空间以进行存储,并更新字段和存储空间的映射表。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.ー种行列混合的数据库存储方法,其特征在于,所述方法包括 创建表及表对应的物理存储空间,根据应用需求确立列和物理存储空间的对应关系; 向表中插入记录,并按列和物理存储空间的对应关系进行分组; 将记录的列值作为行写入到对应的物理存储空间中。
2.根据权利要求I所述的行列混合的数据库存储方法,其特征在于,所述创建的表包括表的名称及表字段。
3.根据权利要求I所述的行列混合的数据库存储方法,其特征在于,所述表对应至少ー个物理存储空间。
4.根据权利要求I所述的行列混合的数据库存储方法,其特征在干,向表中插入记录吋,为记录创建ー个在该表中唯一的标识号,并将记录按列切分;根据列和存储空间的映射表,将列值进行分组。
5.根据权利要求4所述的行列混合的数据库存储方法,其特征在于,对应同一存储空间的列的列值划分到同一组。
全文摘要
本发明公开了一种行列混合的数据库存储方法,所述方法包括创建表及表对应的物理存储空间,根据应用需求确立列和物理存储空间的对应关系;向表中插入记录,并按列和物理存储空间的对应关系进行分组;将记录的列值作为行写入到对应的物理存储空间中。通过本发明提供的行列混合存储方法有效地避免了全表查询,降低了I/O开销,提高了数据读取的速度和全文数据库的查询性能。
文档编号G06F17/30GK102682108SQ201210139488
公开日2012年9月19日 申请日期2012年5月8日 优先权日2012年5月8日
发明者张振海, 陈琳 申请人:同方光盘股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1