分布式数据库的索引技术研究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分布式数据库的索引技术研究

摘要:索引是分布式数据库中的一个重要对象。通过对分布式数据库中的索引管理技术的分析,论述了分布式数据库中索引的概念、特点、分类及使用原则等。分析了分布式数据库设计中的统一索引服务。在文章的最后部分给出了创建合理索引的一些建议。

关键词:分布式数据库索引检索

1索引的概念

索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标志这些值的数据页的逻辑指针清单。表的存储由两部分组成,一部分用来存放数据页面,另一部分存放索引页面。

2索引的创建

2.1 索引的创建

创建索引有多种方法,这些方法包括直接创建索引的方法和间接创建索引的方法。直接创建索引,例如使用CREATE INDEX语句或者使用创建索引向导,间接创建索引,例如在表中定义主键约束或者唯一性键约束时,同时也创建了索引。虽然,这两种方法都可以创建索引,但是,它们创建索引的具体内容是有区别的。

使用CREATE INDEX语句或者使用创建索引向导来创建索引,这是最基本的索引创建方式,并且可以定制创建出符合自己需要的索引。在使用这种方式创建索引时,可以使用许多选项,例如指定数据页的充满度、进行排序、整理统计信息等,这样可以优化索引。使用这种方法,可以指定索引的类型、唯一性和复合性,也就是说,既可以创建聚簇索引,也可以创建非聚簇索引,既可以在一个列上创建索引,也可以在两个或者两个以上的列上创建索引。

通过定义主键约束或者唯一性键约束,也可以间接创建索引。主键约束是一种保持数据完整性的逻辑,它限制表中的记录有相同的主键记录。在创建主键约束时,系统自动创建了一个唯一性的聚簇索引。虽然,在逻辑上,主键约束是一种重要的结构,但是,在物理结构上与主键约束相对应的结构是唯一性的聚簇索引。换句话说,在物理实现上,不存在主键约束,而只存在唯一性的聚簇索引。同样,在创建唯一性键约束时,也同时创建了索引,这种索引则是唯一性的非聚簇索引。因此当使用约束创建索引时,索引的类型和特征基本上都已经确定了,由用户定制的余地比较小。

3分布式数据库设计中的统一索引服务

数据库中的自增量索引是非常重要的一个功能,是防治记录重复的好办法。当然,自增量索引主要是作为主键的,一些高级的数据库还会使用其作完整性验证。尽管偶见过一些人是不使用整数型的自增量索引,而是使用字符串增量,生成一个索引就要半天时间。作为一期目标,使用的SQLite是支持自增量索引的,定义方式为”ID INTEGER PRIMARY KEY”。其他的数据库定义方式可能略有不同。

自增量索引的主要目的是确保这个索引在表格中是唯一的,而分布式数据库中的各台chunk server是分开的,所以必须找办法防止各台chunk server中的主键重复。还好的是自增量索引的设置方式比较灵活,我们可以指定其数值。这样就可以确保进行自增量索引的统一管理。本文的实现方式是通过设置一个专用的索引服务器进程来提供统一索引服务。每次插入记录时,由接口服务器负责调用统一索引服务获得一个在当前表格内的全局唯一索引。并且在插入数据时主动设置其索引值。称为PKS(Primary Key Server)。

PKS提供的几种基本服务包括新建一个全局索引,获取一个全局索引值,更改当前索引起始点,删除一个全局索引。提供的命令列表方式如下:

CREATE PK ;

其中用于标志所用的索引所在数据库。定义了一个索引的名称。由和共同找到一个自增量索引,这两个名称并不一定要实际存在,只是用作命名空间而已。是索引类型,现阶段支持INT、LONG、CHAR(N)、HEXCHAR(N)。其中INT是32位无符号(by gashero)整数类型索引字段。LONG是64位无符号证书类型索引字段。CHAR(N)是适应一些使用字符串中存储数字的用户所用的字符串类型索引字段,每个字符位置存储0-9的值,可以设置字符串的长度。HEXCHAR(N)的原理同CHAR(N),只不过每个字符位置存储的不再是十进制数字,而是0-9+a-f的十六进制数字,其中a-f不区分大小写。

4 PAT Tree技术

基于PAT Tree技术的全文搜索引擎数据库的优点:具有比传统检索方法快20%~30%的检索速度,而添加和删除一条数据所需要的时间仅仅是传统方法的25%和12%。同时,它的树结构可以方便的进行数据库扩容。可以很方便的实现附加条件的检索,相关性排序,二次检索等功能。

PAT Tree是一种压缩二叉查询树,它将关键词作为二进制位串记录在树的结构中,从根结点到叶子结点的每一条路径都代表一个关键词位串。在PAT Tree中,关键词的具体信息都保存在叶子结点上,PAT Tree的内部结点则用来记录关键词的路径,它有三个基本的数据项:比较位、左指针、右指针,其中,左指针和右指针分别指向该结点的左、右子树,比较位记录的是从根结点到达该结点的所有位串中第一个不相同位的位置。由于比较位的存在,途经该结点的位串将选择不同的后继路径,当比较位为0[数字]时,位串转向左子树,比较位为1时,位串转向右子树。由于只比较不同的位,所以PAT Tree的查询速度极快。

相关文档
最新文档