索引相当于目录,可以加快查询速度,和连表速度,减少系统响应时间,最好是在小数据类型(int)上创建索引

但索引也会占用一定的空间,所以索引不适合太多

分为聚集索引和非聚集索引

聚集索引在插入时,先找到物理位置再插入(插入时间就长一点),所以他再物理上连续(查询就更快一点)逻辑上也连续,最多有一个(多个物理位置上会冲突),或没有,一般是主键;eg:就像新华字典,波,拼音是bo所以他在字典里的位置肯定在a后面。

非聚集索引,他是物理上先放在最后面,在在目录上指向这个位置,所以在逻辑上连续,物理上不连续。可以有多个或者没有,插入时间快,查询时间没聚集索引快

use TestDB

create table tset3(
tid int,
tname varchar(10),
pwd varchar(20)
)
--默认是非聚集索引
create index FK_tset3_name
on tset3(tname)
with(
drop_existing=off--on(原来无这个索引,则会提示找不到这个索引)删除原来的索引,create一个新的,off则如果里面有一个则提示错误,(按索引名来查找)
)

create clustered index PK_tset_id
on tset3(tid)
with(
drop_existing=off
)

create unique nonclustered index UP_tset3_pwd
on tset3(pwd)
with(
pad_index=on,--pad_index要有fillfactor才有用
fillfactor=50)


--fillfactor=50创建索引时,每个索引页的数据占索引页大小的百分比
--一般看读写比。
--读写比:1:100=100
--读小于写:50-70
--读写各一半:80-90

--复合索引
create index FK_tset3_name_id
on tset3(tname,tid)
with(
drop_existing=off--on(原来无这个索引,则会提示找不到这个索引)删除原来的索引,create一个新的,off则如果里面有一个则提示错误,(按索引名来查找)
)

--删除索引,索引名on表名
  drop index AK_product on SalesLT.Product

 

posted on 2023-04-24 16:34  阿霖找BUG  阅读(12)  评论(0编辑  收藏  举报