[发明专利]多索引数据库事务处理方法及数据库有效
申请号: | 201210379819.4 | 申请日: | 2012-10-09 |
公开(公告)号: | CN103714090B | 公开(公告)日: | 2018-04-10 |
发明(设计)人: | 阳振坤;李凯;杨传辉;陈俊全 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京亿腾知识产权代理事务所11309 | 代理人: | 戴燕 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 索引 数据库 事务处理 方法 | ||
技术领域
本申请涉及计算机领域,具体涉及到一种多索引数据库写事务处理方法、多索引数据库读事务处理方法及数据库。
背景技术
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。为了提高在数据库中查询数据的效率,数据库需要对一些字段建立索引。以便于按照条件进行查询的情况下,可以先查询索引,并通过索引查找到相关的书库。数据库的索引通常有几种类型,例如顺序索引、散列索引或者位图索引等索引类型。
现有技术中,数据库通常只对数据建立一种索引。采用一种索引方式进行查询,优点在于能够对特定的请求得到较高效率的查询,但是对于特定请求之外的查询,则相对另一种索引方式,效率就会相对较低。
因此,可以设想将两种或者多种以上的索引结合到同一数据库中,以提高针对不同需求对数据库中的数据进行查询时的查询效率。但是,由于数据库需要在更新数据时保证对书库与索引的更新事务的原子性、一致性、隔离性、持久性,简称ACID(Atomicity Consistency Isolation Durability)特性,因此,本申请的目的就是提供一种多索引的数据库事务实现方法,能够在更新数据时保证对书库与索引的更新事务的ACID特性,并且提高对数据库内数据的检索效率。
发明内容
有鉴于此,本申请的目的是提供一种多索引数据库事务处理方法,以实现在更新数据时保证对书库与索引的更新事务的ACID特性,并且提高对数据库内数据的检索效率。
一方面,本申请实施例提供一种多索引数据库事务处理方法,所述数据库包含至少一行数据,所述多索引指向所述行数据中的至少一列数据,所述方法包括:
生成全局有序的第一事务版本号;
以所述第一事务版本号为标记,对所述数据库进行写事务处理,且此时所述数据库的全局事务版本号为第一事务版本号;
更新所述写事务处理后所述数据库中的数据对应的所述多个索引的第一索引的指向关系,以及更新所述数据库中的数据对应的所述多个索引的第二索引的指向关系;
提交所述写事务处理数据,将所述数据库的全局事务版本号更新为第二事务版本号,且所述第二事务版本号为当前事务版本号。
另一方面,本申请实施例提供一种多索引数据库事务处理方法,所述方法包括:
获取所述数据库的最新事务版本号;
根据设定的读取请求方式,采用至少一种索引查询所述数据库中的数据;
读取查询到的所述数据库中的数据,并返回具有不晚于所述最新事务版本号的行数据版本号的数据;
且所述读取查询到的所述数据库中的数据,并返回具有不晚于所述最新事务版本号的行数据版本号的数据具体包括:
若查询到的所述数据库中行包含了早于或等于所述最新事务版本号的数据,则返回所述早于或等于所述最新事务版本号的数据;
若查询到的所述数据库中行数据版本号都晚于所述最新事务版本号,则结束对所述行数据的读取。
另一方面,本申请实施例提供一种数据库,包括:
生成单元,用以生成全局有序的第一事务版本号;
写事务处理单元,用以以所述第一事务版本号为标记,对所述数据库进行写事务处理,且此时所述数据库的全局实务版本号为第一事务版本号;
第一更新单元,用以更新所述写事务处理后所述数据库中的数据的对应的所述多个索引的第一索引的指向关系,以及更新所述数据库中的数据对应的所述多个索引的第二索引的指向关系;
第二更新单元,用以提交所述写事务处理数据,将所述数据库中的数据的全局事务版本号更新为第二事务版本号,且所述第二事务版本号为当前事务版本号。
另一方面,本申请实施例提供一种数据库,包括:
获取单元,用以获取所述数据库的最新事务版本号;
查询单元,用以根据设定的读取请求方式,采用至少一种索引查询所述数据库中的数据;
读取单元,用以读取查询到的所述数据库中的数据,并返回具有不晚于所述最新事务版本号的行数据版本号的数据;
且所述读取单元具体用以,若查询到的所述数据库中行包含了早于或等于所述最新事务版本号的数据,则返回所述早于或等于所述最新事务版本号的数据;
若查询到的所述数据库中行数据版本号都晚于所述最新事务版本号,则结束对所述行数据的读取。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210379819.4/2.html,转载请声明来源钻瓜专利网。