美文网首页mysql
sql server 索引

sql server 索引

作者: Vergil_wj | 来源:发表于2021-06-29 08:42 被阅读0次

    为什么用索引

    提高检索效率

    类型

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

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

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

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

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

    创建索引的方式

    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'
    

    相关文章

      网友评论

        本文标题:sql server 索引

        本文链接:https://www.haomeiwen.com/subject/yheyyltx.html