sql server 索引

为什么用索引

提高检索效率

类型

聚集索引:根据数据行的键值在表或视图中排序存储这些数据行,每个表只有一个聚集索引。聚集索引是一种对磁盘上实际数据重新组织以按指定的一列或多列值排序。

非聚集索引:具有独立于数据行的结构,包含非聚集索引键值,且每个键值项都有指向包含该键值的数据行的指针。

聚集索引类似于新华字典中的拼音索引,物理存储顺序。

非聚集索引类似于新华字典中的偏旁部首索引,逻辑存储顺序。

其它分类方式
按数据唯一性区分:唯一索引、非唯一索引。
按键列数区分:单列索引、多列索引。

创建索引的方式

  1. 通过显示的 create index 命令。
  2. 在创建约束时,作为隐含的对象。
    主键约束(聚集索引);
    唯一约束(唯一索引)

创建索引的语法

create [unique] [clustered | nonclustered] index <index name>
on <table or view name> (<column name> [asc | desc] [,...n])
  • clustered、nonclustered:创建聚集、非聚集索引

举例:

select * from AccountInfo  where AccountCode= '42010719950701'

这样的检索效率很低,给 AccountCode列增加一个索引,以便提高检索效率。

创建索引
create unique nonclustered index index_code
on AccountInfo(AccountCode)
索引查看(sys.indexes)
select * from sys.indexes where name = 'index_code'
删除索引
drop index index_code on AccountInfo
显示指定索引进行查询
select * from AccountInfo with(index = index_code)
where AccountInfo = '42010719950701'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 索引概述 索引的存在主要为了提高数据检索速度,设计高效的索引对于获得良好的数据库和应用程序性能极为重要。 索引是对...
    WilsonPan阅读 1,027评论 0 0
  • 语法 参考 UNIQUE:为表或视图创建唯一索引。 唯一索引不允许两行具有相同的索引键值。 视图的聚集索引必须唯一...
    sttone阅读 3,369评论 0 1
  • SQL SERVER提供了多种索引。如果以存储结构结构来区分,有聚集索引和非聚集索引;如果以数据的唯一性来区分,则...
    不知名的蛋挞阅读 11,211评论 0 5
  • @[toc] 视图是什么 视图在数据库中的作用类似于窗户,用户可以通过这个窗口看到只对自己有用的数据。既保障了数据...
    夜雨流云阅读 4,538评论 0 2
  • 一、基本概念 1.主键、外键、超键、候选键 超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为...
    叫我老村长阅读 3,590评论 0 6