- 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. 索引的类型:
索引的类型多种多样,但在实际工作中经常使用到的索引类型并不多,一般都是比较固定的。这里将常用的索引类型进行了分类总结:
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+ 树的特点:
所有关键字都出现在叶子结点的链表中(稠密索引)
您可能关注的文档
最近下载
- 捕歼战斗中地排教案设计.doc VIP
- 深圳希莱恒电解质说明书.doc VIP
- 开展体育领域突出问题专项整治工作情况汇报.docx VIP
- 学校安全生产风险分级管控和隐患排查治理双重预防体系建设实施指南.pdf VIP
- 双眼视异常分析临床处理2020.pptx VIP
- 排捕歼战斗连贯演练.docx VIP
- Illustrator教程Illustrator绘图技巧Illustrator经典实例Illustrator网格工具绘制逼真花瓣.pdf VIP
- 民企混改公司合作协议书10篇.docx VIP
- 如何免费申请QQ号申请qq号方法.docx VIP
- Illustrator进阶技巧.pdf VIP
文档评论(0)