教育论文浅谈数据库索引的使用

教育论文浅谈数据库索引的使用

ID:9908118

大小:26.00 KB

页数:4页

时间:2018-05-15

教育论文浅谈数据库索引的使用_第1页
教育论文浅谈数据库索引的使用_第2页
教育论文浅谈数据库索引的使用_第3页
教育论文浅谈数据库索引的使用_第4页
资源描述:

《教育论文浅谈数据库索引的使用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、浅谈数据库索引的使用浅谈数据库索引的使用是小柯论文网通过网络搜集,并由本站工作人员整理后发布的,浅谈数据库索引的使用是篇质量较高的学术论文,供本站访问者学习和学术交流参考之用,不可用于其他商业目的,浅谈数据库索引的使用的论文版权归原作者所有,因网络整理,有些文章作者不详,敬请谅解,如需转摘,请注明出处小柯论文网,如果此论文无法满足您的论文要求,您可以申请本站帮您代写论文,以下是正文。  [摘要]索引是影响关系数据库(RDBMS)性能的重要因素之一。当今常用的关系数据库,如SQLServer、Sybase、Oracle、DB2、inform

2、ix等,为了提高性能,都提供相应的索引机制。本文介绍了索引的概念、使用方法以及日常维护。  [关键词]数据库索引检索    一、索引的概念    1.索引基本概念  索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。表的存储由两部分组成,一部分用来存放数据页面,另一部分存放索引页面。通常,索引页面相对于数据页面来说小得多。数据检索花费的大部分开销是磁盘读写,没有索引就需要从磁盘上读表的每一个数据页,如果有索引,则只需查找索引页面就可以了。所以建立合理的索引,就能

3、加速数据的检索过程。  2.索引分类  根据索引的顺序与数据表的物理顺序是否相同可以分为:聚簇索引(clusteredindex)和非聚簇索引(nonclusteredindex)。  (1)聚簇索引重新组织表中的数据以按指定的一个或多个列的值排序。聚簇索引的叶节点包含实际的数据,因此用它查找数据很快,但每个表只能建一个聚簇索引。  (2)非聚簇索引不重新组织表中的数据,它的叶节点中存储了组成非聚簇索引的列的值和行定位指针。  下面,我们举例来说明一下聚集索引和非聚集索引的区别:  汉语字典的正文本身就是一个聚簇索引。比如,我

4、们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。  我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚簇索引”。  如果您认识某个字,您可以快速地从自动中查到这个字。但您也可能会遇到您不认识的字,不知道它的发音,这时候,您就不能按照刚

5、才的方法找到您要查的字,而需要去根据“偏旁部首”查到您要找的字,然后根据这个字后的页码直接翻到某页来找到您要找的字。但您结合“部首目录”和“检字表”而查到的字的排序并不是真正的正文的排序方法。  我们把这种目录纯粹是目录,正文纯粹是正文的排序方式称为“非聚簇索引”。通过以上例子,我们可以理解到什么是“聚簇索引”和“非聚簇索引”。    二、索引的使用    1.聚簇索引的使用  在聚簇索引下,数据在物理上按顺序排在数据页上,重复值也排在一起,因而在那些包含范围检查(between、、>=)或使用groupby、orderby的查询

6、时,一旦找到具有范围中第一个键值的行,具有后续索引值的行必然连在一起,不必进一步搜索,避免了大范围扫描,可以大大提高查询速度。  2.非聚簇索引的使用  非聚簇索引的叶节点不包含实际的数据,因此它检索效率较低,一个表只能建一个聚簇索引,当用户需要建立多个索引时就需要使用非聚簇索引了。在建立非聚簇索引时,要权衡索引对查询速度的加快与降低修改速度之间的利弊。  3.索引使用的误区  (1)主键就是聚簇索引  一些数据库系统(比如SQLserver)会把主键默认为聚簇索引,这种做法常常造成聚簇索引的浪费。通常,我们会为每个表建立一个I

7、D列,以区分每条数据,并且该列是自动增大的,步长一般为1。如果我们把这个列设为聚簇索引。这样做可以使数据在数据库中按ID进行物理排序,但这种做法在实际应用中意义并不大。  举例如下:以电信级数据库中存储话单的表为例,我们查询某个用户的通话记录时经常需要返回某个时间特定范围内的数据。下面我们分几种情况观察在不同索引条件下查询相同内容所用的时间。  假设话单表名为“rec”,其中主叫号码字段名为“callingnumber”,日期字段名为“date”,要求是从表rec中检索callingnumber为“8”的主叫号码2007年3月1日到2

8、0日的通话记录,对应的SQL语句如下:  Select*fromrecwheredate>=‘’anddate<=‘’andcallingnumber=’8’;  第一种情况,用ID列建立

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。