补充资料-数据库应用和性能优化-第三章-索引类型详解-V1.0.docVIP

补充资料-数据库应用和性能优化-第三章-索引类型详解-V1.0.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
索引类型详解 随着信息时代的来临。数据信息的增长已经成为一种爆炸式的增长趋势。但是如何能够在浩瀚的信息库中找到用户所需要的数据呢?这时候就需要通过创建索引的方式来解决问题。通过索引可以使查询数据的工作量减到最低,同时也可以大大提升数据库管理员的工作效率。下面将对索引的类型做一个详细的介绍。 1. 索引的类型: 索引的类型多种多样,但在实际工作中经常使用到的索引类型并不多,一般都是比较固定的。这里将常用的索引类型进行了分类总结: 1)直接创建索引和间接创建索引 ????直接创建索引: CREATE INDEX mycolumn_index ON mytable (myclumn) ????间接创建索引:定义主键约束或者唯一性键约束,可以间接创建索引 ????2普通索引和唯一性索引 ????普通索引:CREATE INDEX mycolumn_index ON mytable (myclumn) ????唯一性索引:保证在索引列中的全部数据是唯一的,对聚簇索引和非聚簇索引都可以使用 ????CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn) ????3单个索引和复合索引 ????单个索引:即非复合索引 ????复合索引:又叫组合索引,在索引建立语句中同时包含多个字段名,最多16个字段 ????CREATE INDEX name_index ON username(firstname,lastname) ????4)聚簇索引和非聚簇索引(聚集索引,集索引) ?? 聚簇索引:物理索引,与基表的物理顺序相同,数据值的顺序总是按照顺序排列 ????CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn) WITH ????ALLOW_DUP_ROW(允许有重复记录的聚簇索引) ?? 非聚簇索引:CREATE UNCLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn) 聚集 聚集索引基于聚集索引键按顺序排序和存储表或视图中的数据行。 非聚集 即可以使用聚集索引来为表或视图定义非聚集索引,也可以根据堆来定义非聚集索引。 唯一 唯一索引确保索引键不包含重复的值。 包含列索引 一种非聚集索引,它扩展后不仅包含键列,还包含非键列。 索引视图 视图的索引将具体化(执行)视图,并将结果集永久存储在唯一的聚集索引中,而且其存储方法与带聚集索引的表的存储方法相同。 全文 一种特殊类型的基于标记的功能索引,由Microsoft SQL Server全文引擎生成和维护。 空间 利用空间索引,可以更高效地对geometry数据类型的列中的空间对象(空间数据)执行某些操作。 筛选 一种经过优化的非聚集索引,尤其适用于涵盖从定义完善的数据子集中选择数据的查询。 XML XML数据类型列中XML二进制大型对象的已拆分持久表示形式。 请注意 一般情况下索引大小是有限制的(最大键列数为16,最大索引键大小为900字节)。数据库引擎计算索引键列数或索引键大小时,不考虑非键列。 例如:假设为示例数据库AdventureWorks中的Document表中的下列字段建立索引: Title navarchar(50) Revision nchar(5) FileName nvarchar(400) 由于nchar和nvarchar数据类型的每个字符需要2个字节,所以包含这三列的索引将会超过900字节的大小限制10个字节(455*2)。这时候就需要使用Create Index语句中的INCLUDE子句将索引键定义为(Title,Revision),而将Filename定义为非键列。这样索引大小将不超过限制,同时索引仍然将包含所需的所有列。创建方法如下: USE AdventureWorks Go Create Index IX_Document_Title ON Production.Document (Title,Revision) Include(Filename) 2. 聚集索引和非聚集索引: 虽然上面提及了多种索引的类型。但是在SQL数据库当中最为常用的就是聚集索引和非聚集索引。这两种索引也是做数据查询时经常需要使用的索引类型。不论是聚集索引,还是非聚集索引,都需要通过B+树的方式实现。B+ 树的结构如图3.1: 请注意 B+树原理是学习数据库的必备基础知识,对B+树的了解可以参考链接:/manesking/archive/2007/02/09/1505979.aspx 图3.1 B+树结构图 B+ 树的特点: 所有关键字都出现在叶子结点的链表中(稠密索引)

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档