`
yyzjlx
  • 浏览: 8813 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

聚集与非聚集索引

阅读更多
聚集与非聚集索引


索引是在数据库表或者视图上创建的对象,目的是为了加快对表或视图的查询的速度

按照存储方式分为:聚集与非聚集索引
按照维护与管理索引角度分为:唯一索引、复合索引和系统自动创建的索引

索引的结构是由:根节点--->非叶节点--->非叶节点--->叶节点


1、聚集索引:表中存储的数据按照索引的顺序存储,检索效率比普通索引高,但对数据新增/修改/删除的影响比较大
特点:
 
  (1) 一个表可以最多可以创建249个索引
  (2) 先建聚集索引才能创建非聚集索引
(3) 非聚集索引数据与索引不同序
(4) 数据与索引在不同位置
(5) 索引在叶节点上存储,在叶节点上有一个"指针"直接指向要查询的数据区域
(6) 数据不会根据索引键的顺序重新排列数据

 创建聚集索引的语法:
   create NONCLUSTERED INDEX idximpID ON EMP(empID)
2、非聚集索引:不影响表中的数据存储顺序,检索效率比聚集索引低,对数据新增/修改/删除的影响很少
特点:
   (1) 无索引,数据无序
   (2) 有索引,数据与索引同序
   (3) 数据会根据索引键的顺序重新排列数据
   (4) 一个表只能有一个索引
   (5) 叶节点的指针指向的数据也在同一位置存储
语法:
create CLUSTERED INDEX idxempID on emp(empID)
3、惟一索引:惟一索引可以确保索引列不包含重复的值.
可以用多个列,但是索引可以确保索引列中每个值组合都是唯一的
姓   名
李   二
张   三
王   五
语法: create unique index idxempid on emp(姓,名)

4、复合索引:如果在两上以上的列上创建一个索引,则称为复合索引。
那么,不可能有两行的姓和名是重复的
语法:
create index indxfullname on addressbook(firstname,lastname)

5、系统自建的索引:在使用T_sql语句创建表的时候使用PRIMARY KEY或UNIQUE约束时,会在表上自动创建一个惟一索引
自动创建的索引是无法删除的
语法:
create table ABc
( empID int primary key,
   firstname varchar(50)UNIQUE,
   lastname   varchar(50)UNIQUE,
)
这样的结果就出来了三个索引,但只有一个聚集索引哦


6、创建索引的方法:
1、企业管理器中
(1)右击某个表,所有任务---管理索引,打开管理索引,单击“新建”就可以创建索引
(2)在设计表中进行设计表,管理索引/键
(3)在关系图中,添加表后右击关系图中的某个表,就有“索引/键”
(4)通过向导,数据库---创建索引向导
(5)通过T-SQL语句
2、能过“索引优化向导”来优化索引的向导,通过它可以决定选择哪些列做为索引列
 



实验的流程:
1、先创建一个表,然后查看一下他的占用资源情况及select * from 表
看一下排序
2、然后创建索引,在观看一下占用资源的情况,及排序情况,看看聚集与非聚集的排序是
  否用变化
 答案是:聚集的有变化,非聚集的排序与未创建索引之前一样
分享到:
评论

相关推荐

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

    聚集索引和非聚集索引是数据库管理系统中两种...总的来说,理解和有效地利用聚集索引与非聚集索引,是提升数据库查询效率的关键。在设计数据库时,应根据数据的特性和查询模式,权衡各种因素,做出最佳的索引策略选择。

    SQL Server 索引结构及其使用(聚集索引与非聚集索引)

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

    索引介绍聚集索引和非聚集索引

    ### 索引介绍:聚集索引与非聚集索引 #### 一、索引的基本概念 在数据库中,索引是一种特殊的文件结构,它的主要目的是为了提高数据检索的速度。索引通过创建一种数据结构(例如B树)来实现这一点,这种结构允许...

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

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

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

    ### 聚焦索引与非聚焦索引的深度解析 #### 一、索引的基础概念及作用 索引在数据库管理系统中扮演着至关重要的角色,它能够显著提高查询效率,减少系统的响应时间。简单来说,索引就像是图书的目录,帮助用户更快...

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

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

    浅析SQL Server 聚焦索引对非聚集索引的影响

    SQL Server中的索引是数据库性能优化的关键因素,主要分为聚集索引(Clustered Index)和非聚集索引(Nonclustered ...在实际应用中,合理地创建和使用聚集与非聚集索引,可以显著提升SQL Server数据库的查询效率。

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

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

    SQL优化(索引、存储过程、数据分页的存储过程)

    SQL优化是数据库管理中至关...总的来说,SQL优化涉及多个方面,包括合理利用索引类型,正确选择聚集与非聚集索引,以及适当使用存储过程来优化数据处理。理解这些概念并结合实际业务场景,才能实现数据库性能的最大化。

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

    非聚集索引则与数据行的物理存储顺序无关。非聚集索引包含索引键值以及指向实际数据行的书签或指针。这允许数据库快速查找特定键值,但仍然需要通过书签定位到实际数据行,因此,相比于聚集索引,非聚集索引的查询...

    SQL 优化

    正确理解索引的工作原理,合理选择和使用聚集与非聚集索引,可以显著提升SQL查询的性能,减少数据库响应时间,从而提高整体系统效率。在实际应用中,需要结合业务需求和数据特性,不断调整和优化索引策略,以达到...

    sqlserver 聚集索引和非聚集索引实例

    总的来说,合理地设计和使用聚集索引与非聚集索引是提升SQL Server数据库性能的关键。在创建索引时,应考虑数据的访问模式、表的大小、更新频率等因素,以确保索引能够有效地支持应用程序的需求。

    在SQL Server中估算非聚集索引的大小.pdf

    在SQL Server中,非聚集索引是一种重要的数据库优化工具,用于加速数据检索。非聚集索引不同于聚集索引,后者是表数据本身按照索引排序的方式存储,而非聚集索引则包含指向表中实际数据行的逻辑指针。在设计数据库时...

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

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

    索引与散列PPT学习教案.pptx

    2. **聚集与非聚集索引**:聚集索引(主索引)的物理顺序与搜索码值顺序相同,提供高效的范围选择,但维护成本较高,需要定期整理。非聚集索引则不保证这种顺序,数据记录与索引分开存储。 3. **稠密索引与稀疏索引...

    #数据库相关问答

    本篇文章将深入探讨数据库相关的知识点,特别是关于“聚集与非聚集索引”的概念,这些概念对于优化数据库查询性能至关重要。 首先,让我们理解什么是索引。索引就像是书籍的目录,它允许我们快速定位到数据,而无需...

    【数据库】浅析Innodb的聚集索引与非聚集索引

    Mysql存储引擎之一的Innodb的索引,可以分为聚集索引与非聚集索引,这两种索引都是使用B+树组织的。 本文不讲解什么是索引,对索引不了解的同学可以先移步到我的另外一篇文章【数据库】mysql索引简谈 在分析这两种...

    海量数据查询优化

    本篇文章将深入探讨“海量数据查询优化”这一主题,包括聚集与非聚集索引的区别,以及如何利用索引来提升查询性能。 首先,我们要理解什么是索引。索引是数据库管理系统中用于加速数据检索的数据结构。它类似于书籍...

    Sql Server中的非聚集索引详细介

    首先,我们需要了解非聚集索引与聚集索引的区别。聚集索引是数据库中唯一的,其索引键值决定了数据行在表中的物理存储顺序,每个表只能有一个聚集索引。而非聚集索引则不同,它的索引结构与数据存储分离,索引项包含...

Global site tag (gtag.js) - Google Analytics