SQL 创建索引 Index「建议收藏」

SQL 创建索引 Index「建议收藏」索引是一种特殊的目录。像图书馆例子<字母序号书名>;字典例子<拼音/部首>等。聚集索引聚集索引表中行的物理顺序与键值的逻

欢迎大家来到IT世界,在知识的湖畔探索吧!

SQL 创建索引 Index「建议收藏」

数据库索引是什么?(what is Index)

索引是一种特殊的目录。是对数据库表中一列或多列的值进行排序的结构。像图书馆例子<字母序号书名>;字典例子<拼音/部首>等。

SQL 创建索引 Index「建议收藏」

索引的作用是什么?(What Index Function)

加快对表中记录的查找定位或排序。

数据库索引分类是什么?(What Index Catalog)

SQL 创建索引 Index「建议收藏」

第一类:聚集索引(clustered Index)

  1. 聚集索引(clustered Index)
  • 表中行的物理顺序与键值的逻辑(索引)顺序相同,一个表只能包含一个聚集索引;
  • 对于那些定义为text, image和bit数据类型的列不应该增加索引;
  • 当修改性能远远大于检索性能时,不应该创建索引。

2.非聚类索引(nonclustered Index)

  • 可以看作是一个含有聚集索引的表;
  • 他只仅包含原表中非聚集索引的列和指向实际物理表的指针.
SQL 创建索引 Index「建议收藏」

第二类:唯一索引(Unique Index)

1.唯一索引(Unique Index)

  1. 不允许其中任何两行具有相同索引值的索引。
  2. 唯一索引并不一定就是主键。
  3. 唯一索引允许为空值,但是不能被其他表引用为外键。
  4. 一个表可以有多唯一索引。

2.简单索引(Simple Index)

普通索引一般是在建表后再添加的索引。

第三类:主键索引(Primary Key Index)

  1. 主键是一种约束,主键创建后一定包括一个唯一索引。
  2. 主键可以被其他表引用为外键,但是唯一索引不可以。
  3. 一个表只能创建一个主键索引,主键列不允许为空值。
  4. 主键索引更适合那些不容易更改的唯一标识。如自动递增,车牌号,学生编号等。
  5. 在RPO模式下,主键索引的执行计划优先级要高于唯一索引。

注:

还有一些 全文索引、xml索引等等。

索引的优点是什么?(What Advantage)

1.索引是经过某种算法优化过的,可以大大加快数据的检索速度;

2.可以加速表和表之间的连接;

3.使用索引可以在查询的过程中,使用优化隐藏器,提高系统的性能。

索引的缺点是什么?(What Weakness)

1.增加了数据库的存储空间(物理空间);

2.在增删改数据时要花费较多的时间(因为索引也要随之更新);

3.创建索引和维护索引要耗费时间;

如何创建索引? (How Create Index)

语法:

create [unique][clustered | nonclustered] index index_name 
on {table_name | view_name} [with [index_property [1,...,n]]]

欢迎大家来到IT世界,在知识的湖畔探索吧!

注:

index_property:索引属性。

索引实例 (Index Exercises)

1.转到当前所用数据库

欢迎大家来到IT世界,在知识的湖畔探索吧!use TestSchool
go

2.判断是否已存在要创建的索引

if exists( select * from sysindexes where name = 'IX_Adress_Id')
drop index IX_Adress_Id
go

3.创建Adress.Id 列唯一索引

欢迎大家来到IT世界,在知识的湖畔探索吧!create unique index IX_Adress_Id
on Adress(Id asc)
go 

注: 升序建立索引

SQL 创建索引 Index「建议收藏」

4.查询显示索引信息

exec sp_helpindex Adress ;
SQL 创建索引 Index「建议收藏」

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/17634.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信