- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
索引在数据检索中的重要作用_索引型检索的分类
摘要:数据库应用中最重要的操作是什么?答案无疑是数据检索。毫不夸张的说,数据库运行过程中百分之九十以上的操作都是与数据检索息息相关的。而对于数据检索来说,最重要的就是检索的精度与速度。检索的精度基本取决于编程人员的水平,而检索的速度则受到多种因素的影响。其中,索引技术是数据库管理系统中最常用的提高检索速度的手段。 关键词:数据检索索引检索速度 随着数据库技术的飞速发展和广泛应用,各行各业都积极采用这一先进技术进行数据的管理与使用。在数据库的诸多应用中,最常用和最重要的功能是什么?答案无疑是数据检索。毫不夸张的说,数据库在运行和使用的过程中,百分之九十以上的操作都与数据检索息息相关,甚至有些数据库创建的目的就是提供数据检索。 在数据库的运行过程中,数据检索是最频繁的操作。此外,例如数据的修改、数据的删除都要建立在数据的检索基础上。再比如数据库系统中视图的实施、存储过程的设计等数据库对象的管理,其核心内容也是数据的检索。 数据检索过程中最重要的就是检索的精度与速度。要求尽可能在最短的时间内准确的找到目标数据。检索的精度基本依靠于编程人员自身的水平,而检索的速度则受到多方面因素的影响。其中,索引技术是数据库管理系统中最常用的提高检索速度的手段。 1 索引概述 索引是对数据库表中一列或多列的值进行排序的一种结构,它就好比一本书的目录,可以大大提高用户检索数据的速度。索引是作为一个单独的文件存储在数据库中的,与其依附的基本表分开存储。引入索引的主要目的就是提高检索数据的速度。一个数据库中是否建有索引、索引机制设计的是否合理,对数据库检索速度的影响是巨大的。 2 索引分类 根据索引自身结构的特征,可以将索引分为:普通索引、唯一索引、主键索引和聚集索引。 2.1 普通索引:普通索引没有特殊的结构特点,索引中每个键值项都有指向包含该键值的数据行的指针。 2.2 唯一索引:与普通索引不同,唯一索引中不允许任何两行具有相同索引值。 2.3 主键索引:严格来讲,主键索引并不是一种索引类型,而是索引的一种特殊应用。创建主键时,数据库引擎会自动创建唯一的索引来强制实施PRIMARY KEY约束的唯一性要求。如果这个表之前没有聚集索引,同时建立主键时候没有强制指定使用非聚集索引,则建立主键时候,同时建立一个唯一的聚集索引。 2.4 聚集索引:一种特殊索引,索引中键值的逻辑顺序决定了表中相应行的物理存储顺序。每个表只能有一个聚集索引,因为表和视图中的数据行本身只能按一个顺序排序。 上述类别并不是严格区分的,例如主键索引同时也可能是聚集索引,聚集索引也可能是唯一索引。 3 索引原理 索引的主要功能是提高检索速度,那么它是如何实现这一功能的呢?这里引入一个现实中与数据检索过程类似的工作――下发作业本,来对无索引、普通索引和聚集索引对于数据检索的影响加以说明。 3.1 没有索引 假设在一个班级中,老师要下发学生的作业本(相当于检索数据,下发作业所用路线越长,意味着检索时间越长)。学生的座位是随机安排的(数据是无序的存储在硬盘中),只是在座位上标有学生的学号。教师手中没有学生的座位表(没有引入索引),下发作业只能逐个查看学生座位上的学号,直到找到目标学生。假设学生目前实际的座位情况如图1所示,现在要发放学号为1、4和13三名同学的作业。 首先发放1号学生的作业,因为座号无序,教师手中也没有座位表,所以教师只能逐个座位去查看座位上的学号是否为1号,直到找到1号学生为止,路线如图2示。 接下来发放4号同学的作业,与发放1号作业相同,教师需要从头逐个查看,路线如图3中■线路所示。同样,发放13号作业时也要返回起点后再逐个查看。可见,这样的方案效率是十分低的。 3.2 普通索引 当一个基本表引入普通索引的时候,就如同教师手中有了座位表一样,发放作业时可以直接找到该学生座位,这样发放作业的路线就变得简单很多,如图4所示。 通过图4和图2的比较,可以看出第二种方法发3本作业的路线比第一种方法发1本作业的路线还短,效率大大提高。但是同时也可以看出,这种路线也存在折返与重复的情况存在,即不是最佳方案。 3.3 聚集索引 聚集索引会将数据按照逻辑顺序重新排列,就如同教师不仅拥有座位表,而且学生的座位也是按照学号有序排列的,这使发放的路程更加简单,如图5所示。 从图5中可以看出,该方案没有折返和重复的路线,基本上是最优的发放方法。所以从上述三种方法可以看出,无索引,普通索引和聚集索引对于检索的影响有多么明显。如果将这种影响放大到存放成千上万数据的数据库中,结果可想而知。 4 使用索引的注意事项 虽然索引可以
原创力文档


文档评论(0)