索引的概述与创建

索引:是SQL编排数据的内部方法

  为SQL SERVER提供了一种方法来编排查询数据

索引分类:

聚集索引:正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”

非聚集索引:目录纯粹是目录,正文纯粹是正文的排序方式称为“非聚集索引”。

作用:大大提高数据的检索速度。改善数据库性能

建立索引的一般原则

1,每个表只能创建一个聚集索引

2,每个表最多可以创建249个非聚集索引

3,在经常查询的字段上建立非聚集索引

4,text,image和bit数据类型的列上不要建立索引

5,外键列可以建立索引

6,主键列必须建立索引

索引的创建方式

1,SSMS管理器创建索引

2使用T-SQL语句创建索引

语法

if exists(select * from sysindexes where name='索引名称')

go

drop index 表名.索引名

create [unique] [clustered|nonclustered]

  index 索引名

  on 表名(列名)

  [with fillfactor=x]

unique:唯一索引

clustered|nonclustered:聚集索引或非聚集索引

fillfactor:充因子(系数):指定一个0~100之间的表示索引页填充的百分比(是为了以后可能会对表进行删减进而需要增加索引所预留的位置比例)

例子:

use E_Market
go
--举例,为用户表UserInfo中的UserAddress地址列创建(非聚集)索引
if exists (select * from sysindexes where name='IX_UserInfo_UserAddress')
drop index UserInfo.IX_UserInfo_UserAddress   --表名.索引名
go 
create nonclustered index IX_UserInfo_UserAddress
on UserInfo(UserAddress)    --on   表名(列名)
with fillfactor=30
go

--如何使用索引
--查询用户地址为河北的有哪些
select * from UserInfo
    with (index=IX_UserInfo_UserAddress)   --平时可以不加sql server会自动选择按照索引进行查询的
where UserAddress like '%河北%'

 

posted @ 2019-05-23 22:37  我是神奇的小白  阅读(388)  评论(0编辑  收藏  举报