关键字:单一索引、复合索引、唯一索引、系统自建索引、聚集索引、非聚集索引
一、单一索引
在一个列上创建的索引,称为单一索引。
语法: create index indexname on tabname(col1);
二、复合索引
在两个以上的列上创建的索引,称为复合索引。
语法: create index indexname on tabname(col1,col2);
总结:
1、仅用复合索引的起始列作为查询条件和同时用到复合索引的全部列的查询速度是几乎一样的
2、如果仅用复合索引的非起始列作为查询条件的话,这个索引是不起任何作用的
3、无论您是否经常使用复合索引的其他列,但起始列一定要是使用最频繁的列
4、对一张表来说,如果有一个复合索引idx1 on (col1,col2),就没有必要同时创建一个单一索引 idx2 on col1
5、相对同时建立多字段(包含5、6个字段)的复合索引而言,建立多个窄字段(仅包含一个,或顶多2个字段)的索引可以达到更好的效率和灵活性
三、唯一索引
惟一索引可以确保索引列不包含重复的值。
可以用多个列,但是索引可以确保索引列中每个值组合都是唯一的
语法: create unique index indexname on tabname(col1,col2);
四、系统自建索引
在使用T_SQL语句创建表的时候使用PRIMARY KEY或UNIQUE约束时,会在表上自动创建一个惟一索引。
注意用PRIMARY KEY约束的即是唯一索引,也是聚集索引。
自动创建的索引是无法删除的。
语法:
create table ABC
( empid int primary key,
fullname varchar(50)UNIQUE
)
五、聚集索引
索引中键值的逻辑顺序决定了表中相应行的物理顺序。检索效率比普通索引高,但对数据新增/修改/删除的影响比较大。
特点:
1、无索引,数据无序
2、 有索引,数据与索引同序
3、 数据会根据索引键的顺序重新排列数据
4、 一个表只能有一个聚集索引
5、不使用在经常修改的列
语法:create CLUSTERED index indexname on tabname(col1);
六、非聚集索引
索引不影响表中的数据存储顺序。检索效率比聚集索引低,对数据新增/修改/删除的影响很少。
特点:
1、非聚集索引数据与索引不同序
2、 一个表可以最多可以创建249个非聚集索引
3、 先建聚集索引才能创建非聚集索引
语法:create NONCLUSTERED index indexname on tabname(col1);
七、聚簇索引与非聚簇索引的区别
1、区别聚簇索引的叶节点就是数据节点,而非聚簇索引的页节点仍然是索引检点,并保留一个链接指向对应数据块。
2、聚簇索引主键的插入速度要比非聚簇索引主键的插入速度慢很多。
3、相比之下,聚簇索引适合排序,非聚簇索引不适合用在排序的场合。因为聚簇索引本身已经是按照物理顺序放置的,排序很快。非聚簇索引则没有按序存放,需要额外消耗资源来排序。
4、当你需要取出一定范围内的数据时,用聚簇索引也比用非聚簇索引好。
5、相比非聚簇索引,聚簇索引下的数据在物理上按顺序排在数据页上,重复值也排在一起,因而在那些包含范围检查(between、<、<=、>、>=)或使用group by或orderby的查询时,一旦找到具有范围中第一个键值的行,具有后续索引值的行保证物理上毗连在一起而不必进一步搜索,避免了大范围扫描,可以大大提高查询速度。
相关推荐
关于索引的介绍,以及b+树结构图,两种索引性能比较,索引优化建议
SQL Server 索引结构及其使用(聚集索引和非聚集索引)的区别与实例讲解,提高查询速度。
详细介绍数据库中非聚集索引,聚集索引,索引,模式的各个内容与区别。
MySQL索引 聚集索引 如果你想了解MySQL索引查询优化,你首先应该对MySQL数据组织结构、B-Tree索引、聚集索引,次要索引有一定的了解,才能够更好地理解MySQL查询优化行为。这里主要探讨MySQL InnoDB的聚集索引。
聚集索引和非聚集索引的区别,需要的可以下来参考参考。
一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理...由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。
一、 创建主键(主键=主键索引=聚集索引) 主键是什么? 答:拿主键可以唯一确定一条数据,它和物理存储排序一致,不能为空,一个表只能有一个。 原本没有创建的主键的表在磁盘上存储为: Id=0;username=username0;sex...
视图索引存储过程 事务显示事务 隐式事务 --索引 作用:提高查询效率 降低新增修改和删除的效率 --主键索引 唯一索引 聚集索引非聚集索引 --创建索引 --索引index 默认创建的是不唯一,非聚集索引
聚集索引:物理存储按照索引排序 非聚集索引:物理存储不按照索引排序
唯一非聚集索引留着, 再添加一个 非聚集索引,保留两个索引, 终于搞定了. CREATE UNIQUE NONCLUSTERED INDEX [IX_SF_CP_Detail_MAC2] ON [dbo].[SF_Cp_Detail] ( [Mac2] ASC ) WHERE ([MAC2]<>'' AND [MAC2] IS NOT...
SQLServer索引基础知识----聚集索引,非聚集索引[归纳].pdf
SQLServer聚集索引与非聚集索引讲解[借鉴].pdf
B+树介绍,为什么选择B+树,非聚集索引 聚集索引 第一点、第二点、第三点 不建议使用过长的字段,不建议使用非自增字段作为主键 什么条件下使用索引? 索引选择性,行数前缀索引 所谓索引的选择性是指不重复的索引值...
在MySQL里,聚集索引和非聚集索引分别是什么意思,有什么区别? 在MySQL中,InnoDB引擎表是(聚集)索引组织表(clustered index organize table),而MyISAM引擎表则是堆组织表(heap organize table)。 也有人把聚集索引...
主要介绍了聚集索引和非聚集索引的相关知识,比较详细整理了一些知识点,需要的朋友可以参考下
Mysql存储引擎之一的Innodb的索引,可以分为聚集索引与非聚集索引,这两种索引都是使用B+树组织的。 本文不讲解什么是索引,对索引不了解的同学可以先移步到我的另外一篇文章【数据库】mysql索引简谈 在分析这两种...
这一优点既适用于聚集索引也适用于非聚集索引。以删除旧索引然后重新创建同一索引的方式重建聚集索引,是一种昂贵的方法,因为所有二级索引都使用聚集键指向数据行。如果只是删除聚集索引然后重新创建,则会使所有非...
数据库对象索引视图聚集同义词PPT教案.pptx
基于索引列聚集的HBase二级索引设计,张祎,双锴,HBase作为Apache开源的列式存储数据库,在一定程度上解决了海量数据存储的问题,并提供了高效的数据读写性能。但是由于HBase缺乏二级��