`

索引及聚集索引

    博客分类:
  • DB
 
阅读更多

关键字:单一索引、复合索引、唯一索引、系统自建索引、聚集索引、非聚集索引

一、单一索引

在一个列上创建的索引,称为单一索引。
语法: 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 索引结构及其使用(聚集索引与非聚集索引)

    "SQL Server 索引结构及其使用(聚集索引与非聚集索引)" 数据库索引是数据库性能优化的关键技术之一。SQL Server 提供了两种索引:聚集索引(clustered index)和非聚集索引(nonclustered index)。本文将详细介绍...

    数据库非聚集索引 聚集索引 模式 索引

    本文将深入探讨数据库中的非聚集索引、聚集索引以及索引模式的概念,并分析它们之间的区别。 首先,让我们了解一下**非聚集索引**。非聚集索引在数据库中不按照数据的实际物理顺序存储。每个非聚集索引条目包含键值...

    聚集索引和非聚集索引的区别

    聚集索引和非聚集索引是数据库管理系统中两种重要的索引类型,它们在数据库查询优化中扮演着关键角色。理解这两种索引的区别对于优化数据库性能至关重要。 首先,聚集索引(Clustered Index)决定了表中数据的实际...

    MySQL索引 聚集索引

    MySQL索引 聚集索引 如果你想了解MySQL索引查询优化,你首先应该对MySQL数据组织结构、B-Tree索引、聚集索引,次要索引有一定的了解,才能够更好地理解MySQL查询优化行为。这里主要探讨MySQL InnoDB的聚集索引。

    聚集索引与非聚集索引的区别

    #### 一、索引的基础概念及作用 索引在数据库管理系统中扮演着至关重要的角色,它能够显著提高查询效率,减少系统的响应时间。简单来说,索引就像是图书的目录,帮助用户更快地定位到所需的信息。在数据库领域,...

    简单例子理解主键,索引,聚集索引,复合索引,非聚合索引

    一、 创建主键(主键=主键索引=聚集索引) 主键是什么? 答:拿主键可以唯一确定一条数据,它和物理存储排序一致,不能为空,一个表只能有一个。 原本没有创建的主键的表在磁盘上存储为: Id=0;username=username0;sex...

    SQLServer索引基础知识----聚集索引,非聚集索引[归纳].pdf

    SQL Server 索引基础知识----聚集索引,非聚集索引 SQL Server 索引是关系型数据库中的一种重要组件,它可以大大提高查询的效率。索引可以分为聚集索引和非聚集索引两种,本文将详细介绍这两种索引的概念、特点和...

    SQLServer聚集索引与非聚集索引讲解[借鉴].pdf

    "SQLServer聚集索引与非聚集索引讲解" 本文主要讲解了SQL Server中的聚集索引和非聚集索引的概念、原理和应用场景。聚集索引(Clustered Index)和非聚集索引(Non-Clustered Index)是SQL Server中两种不同的索引...

    唯一非聚集索引变量传入时索引失效解决方案

    尝试一,将唯一非聚集索引更改为非聚集索引,使得查询能够使用索引,但这牺牲了对`Mac2`字段唯一性的保证。 尝试二,恢复唯一非聚集索引,并在查询中添加`option (recompile)`。`option (recompile)`强制每次执行时...

    SQL Server 聚集索引和非聚集索引的区别分析

    索引分为两种主要类型:聚集索引和非聚集索引,它们在数据存储和查询性能上具有显著区别。 **聚集索引(Clustered Index)** 聚集索引决定了数据在磁盘上的物理顺序,这意味着表中的每一行数据都是按照聚集索引的...

    数据库 创建索引 sql oracle

    * 非聚集索引:与表中数据行的实际存储结构无关,不会改变数据表中记录的实际存储顺序,每个表可以有多个非聚集索引。 * 唯一索引:要求创建索引的关键字段值在表中不能有重复值。 * 复合索引:对表创建的索引是基于...

    SQL Server 索引中include的魅力(具有包含性列的索引)

    通过将非键列添加到非聚集索引的叶级别,可以创建覆盖更多查询的非聚集索引。 重要概念: * 覆盖查询:当索引包含查询引用的所有列时,它通常称为“覆盖查询”。 * 索引覆盖:如果返回的数据列就包含于索引的键值...

    创建索引和调优索引

    索引可以分为多种类型,包括聚集索引和非聚集索引,每种都有其特定的用途和优势。 聚集索引,正如其名,决定了数据行在表中的物理排序。这种索引的键值直接对应于数据行,意味着一个表只能有一个聚集索引。如果表...

    MySQL索引之聚集索引介绍

    在MySQL数据库中,索引是优化查询性能的关键工具,尤其对于InnoDB引擎,它采用了独特的聚集索引(Clustered Index)策略。聚集索引的概念并不是MySQL独有的,而是许多关系型数据库管理系统中的一个重要特性。理解...

    SQL Server 2000索引结构及使用方法

    本文将详细介绍 SQL Server 2000 的索引结构和使用方法,包括聚集索引和非聚集索引的定义、区别、使用场景和注意事项。 一、索引结构 索引是一种特殊的目录,可以帮助我们快速地查找数据。SQL Server 2000 提供了...

    数据库索引设计和优化

    4. 聚集索引与非聚集索引:聚集索引中,索引项的值就是数据行的位置,而非聚集索引则有单独的索引页和数据页,需要回表操作。 四、查询优化 1. 使用WHERE子句:避免全表扫描,合理使用索引字段进行筛选。 2. 避免...

    sql server 重新组织和重新生成索引

    重新组织索引是通过对叶页进行物理重新排序,使其与叶节点的逻辑顺序(从左到右)相匹配,从而对表或视图的聚集索引和非聚集索引的叶级别进行碎片整理。重新组织索引可以提高索引扫描的性能。 重新生成索引 重新...

Global site tag (gtag.js) - Google Analytics