索引相当于目录,可以加快查询速度,和连表速度,减少系统响应时间,最好是在小数据类型(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
本文来自博客园,作者:阿霖找BUG,转载请注明原文链接:https://www.cnblogs.com/lin-07/p/17350004.html