1.索引 :是数据表中数据和相应存储位置的列表;利用索引可以提高在表或视图中查询数据的速度。
一般分为:聚集索引与非聚集索引以及唯一索引
聚集索引:存储位置和索引顺序完全相同,一张表中只能有一个聚集索引
非 聚集索引:存储位置和索引顺序不完全相同,一张表中可以有249个非聚集索引
一般使用非聚集索引的情况:
1.某个字段的重复性较低
2.查询得到的数据量较少
3.已经存在聚集索引
创建索引:
create 唯一索引( [ unique])聚集|非聚集([clustered|nonclustered])
index 索引名 [.... ] 中括号型 代表可省略
on 表名(列名)
[with fillfactor=x] 系数:指定一个0~100之间的值,表示索引页被填充的百分比 ,一般设置为70~80
使用索引: with要跟在表名后使用
select * from 表名 with(index=索引名) where 条件
删除索引: 先判断索引是否存在 再删除 必须要以 表名.索引名 的方式删除
if exist(select * from sys.indexes where name='索引名')
drop index 表名.索引名
当表中的数据重复值较高或者数据较少时 不适合创建索引
2.视图:一张虚拟表,用于存放查询语句,并不存放数据;同一张表,根据不同的需求,可以创建不同的视图
创建视图:
create view 视图名[(列名·····)]
[with encryption] 视图加密
as<select 语句> 查询语句
使用视图:
select * from 视图名 where 视图中列所存在的名字=条件
删除索引: 先判断索引是否存在 再删除
if exist(select * from sys.views where name='视图名')
drop view 视图名
视图加密:使用with encryption,不影响视图正常使用
视图的好处:
1.不需要和定义语句一起使用
2.视图存储在数据库中,一次创建可多次使用
3.相对来说,保证数据的安全性