数据库索引是数据库管理系统中一个排序的数据结构,用来协助快速查询、更新数据库表中的数据。如中国知网数据库检索中的关键词、主题检索、作者检索等均是在分类、主题标引的基础上组织信息资源,形成有序化的知识库,从而提供信息检索服务的。对多个正文文本建立索引的基本思想,就是把正文看成一个个的关键词集合,然后用这些词组成一些适合快速检索的数据结构。
一个索引文件就是一个已经排好序的关键词的列表,其中每个关键词指向一个数据库索引表,该表中记录了该关键词出现的文档集合以及在该文档中的出现位置。如定义某工具书文章的索引集为:
[索引词;内容摘要;(所在数据库编号,出现次数,{出现位置})]
则部分索引数据表示如下:
[数据库;介绍计算机数据库的组织;(#1207,1,7)(#2408,2,19,34)……]
[信息检索;广义的信息检索包括信息组织过程;(#2408,1,67)(#3742,3,11,122,226)……]
[索引编制;索引数据库的建设是基于数据库技术开发的一种应用;(#2948,3,45,267,587)(#3693,5,39,423,765,809,1024)……]
……
当要检索关于“索引编制”方面的文章时,可直接取出其索引表即可得知,编号为2948和3693的论文都是包含“索引编制”这个关键词的,且能知道包含了多少次,以及在各个文档中的具体出现位置。如果同时需要“数据库”和“信息检索”两方面的文章,则可以直接将两个索引表取交集,就能得到所有符合条件的集合,编号2408即是。从中可以省掉对整个数据库每一篇文档逐个查找的代价,以快捷地获取结果。虽然对索引表进行集合运算需要一些运算空间,且当文件发生变化时需要同时维护相关索引(集合),但由于索引支持高效检索,所以应用相当广泛,特别是应用于如光盘的数据检索等。
关系数据库系统创建了索引,则可以大大提高索引编制系统的数据库性能:
(1)可以大大加快索引数据库的检索速度,这也是创建索引的最主要的原因;
(2)通过创建唯一性索引,可以保证索引数据库表中每一行数据的唯一性;唯一索引是指不允许其中任何两行具有相同索引值的索引,当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存,并防止添加将在表中创建重复键值的新数据,例如,在id_doctor表中博士论文作者的姓名上创建了唯一索引,则任何两篇论文都不能有同姓名的作者;
(3)可以使多个索引表之间的连接便捷,维护数据参考完整性的实现;
(4)在使用分组和排序子句进行数据检索时,可以显著减少索引查询中分组和排序的时间;(www.xing528.com)
(5)可以在查询的过程中使用优化隐藏器,通过使用索引提高系统的性能。
但是增加索引也有一些不足,如:创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加;索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大;当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。这是我们在建设索引编制系统中所要考虑和权衡的问题。
2.创建数据库索引的若干特点
现代的数据库管理系统一般都提供了在数据库表中的某个或某些列上建立索引的功能。针对索引编制系统数据库索引的特点,哪些列上创建或不宜创建数据库索引,一般来说,应该有以下的基本原则:
(1)在经常需要查询的列数据上建索引,可以加快索引编制系统数据库检索的速度;
(2)在作为索引编制系统数据库主键的列数据上建索引,可以确保该列数据的唯一性并组织好表中数据的排列结构。主键索引是唯一索引的特定类型,该索引要求主键中的每个值都唯一,当在查询中使用主键索引时,它还允许对数据的快速访问;
(3)在经常用于连接的列数据上建索引(数据库术语中我们称这些列为外键),可以加快索引编制系统数据库表连接的速度;
(4)在经常需要根据范围进行搜索的列数据上建索引,因为索引已经排序则指定的范围是连续的,可以使索引编制系统数据库操作便捷;
(5)在经常需要排序的列数据上建索引,因为索引已经排序,可以利用索引的排序加快索引编制系统数据库排序查询时间;
(6)在经常使用在条件子句中的列数据上建索引,可以加快索引编制系统数据库检索的条件判断速度。
(7)在查询中很少使用或者参考的列数据上不适宜创建索引,既然这些列很少使用,那么有无索引并不能提高查询速度,相反增加了索引会降低索引编制系统的维护速度和增大了空间需求;
(8)只有很少数据值的列数据上不适宜增加索引,由于这些列的取值很少,例如人物大事记索引中的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大,增加索引并不能明显加快检索速度;
(9)索引编制系统数据库中text,image和bit类型的列数据上不适宜增加索引,因为这些列的数据量或者相当大或者取值很少;
(10)索引编制系统的数据修改需求远高于检索时不适宜创建索引,修改性能和检索性能是一对矛盾,当增加索引时会提高检索性能但会降低修改性能,当减少索引时会提高修改性能但会降低检索性能。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。