`
liulanghan110
  • 浏览: 1072520 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

聚集索引和非聚集索引

阅读更多
聚集索引和非聚集索引
 
聚集索引:表的物理存储按照索引顺序排序。
非聚集索引:表的物理存储不按照索引顺序排序。
聚集索引:插入数据时速度要慢(时间花费在“物理存储的排序”上,也就是首先要找到位置然后插入)。但在范围查询数据比非聚集数据的速度快。
 
为什么聚集索引的范围查询会快呢?这里用ORACLE的聚簇因子来说明。
 
聚簇因子(CLUSTERING_FACTOR)
 
聚簇因子是ORACLE用来表示索引顺序和表顺序相似程度的。聚簇因子越小,相似度越高,聚簇因子越大,相似度越低。 
 
当clustering factor 很高时,说明index entry(rowid) 是随机指向一些block的,在一个大的index range scan时,这样为了读取这些rowid 指向的block,就需要一次有一次重复的去读这些block。当clustering factor 值低时,说明index keys(rowid) 是指向的记录是存储在相同的block里,这样去读row时,只需要在同一个block里读取就可以了。就可以减少重复读取block的次数。
 
很显然,聚集索引的clustering factor 是所有索引中最低的,所以聚集索引的范围查询比非聚集索引快一些。
 
索引组织表
 
Oracle中没有所谓的聚集索引,但有索引组织表(IOT)。Oracle的普通表即堆表,存储数据时没有顺序可言,而Oracle的索引组织表是根据主键顺序来存储表中的数据的。索引组织表的结构和索引一样,只是一般索引放的是索引列的键值,而索引组织表放的是整个表的数据。经常更新的表当然不适合IOT,因为oracle需要不断维护索引,而且由于字段多索引成本就大。如果不是经常使用主键访问表,就不要使用IOT。
分享到:
评论

相关推荐

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

    ### 索引介绍:聚集索引与非聚集索引 #### 一、索引的基本概念 ...总之,了解聚集索引和非聚集索引之间的区别对于优化数据库性能至关重要。通过合理设计和维护索引,可以显著提高数据库系统的整体性能。

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

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

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

    本文将详细介绍聚集索引和非聚集索引的概念、区别、使用场景和误区。 聚集索引是一种特殊的目录,根据一定规则排列的目录。例如,汉语字典的正文部分本身就是一个聚集索引。聚集索引的优势在于能够根据查询要求,...

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

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

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

    总的来说,非聚集索引和聚集索引各有特点,适用于不同的场景,而索引模式的构建则是平衡查询性能和存储维护的关键。通过深入学习《非聚集索引.docx》、《聚集索引.docx》和《索引模式.docx》等文档,可以更全面地...

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

    ### 聚焦索引与非聚焦索引的深度解析 ...理解聚焦索引和非聚焦索引的特点及其应用场景,可以帮助我们在实际工作中做出更合理的决策。通过对索引的有效管理和优化,可以大大提高数据库系统的整体性能。

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

    本文主要讲解了SQL Server中的聚集索引和非聚集索引的概念、原理和应用场景。聚集索引(Clustered Index)和非聚集索引(Non-Clustered Index)是SQL Server中两种不同的索引类型,了解它们的区别和应用场景对于提高...

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

    Bookmark Lookup 是一种特殊的查询方式,它可以将非聚集索引和聚集索引结合起来,提高查询的效率。Bookmark Lookup 的过程如下所示: 先在非聚集中找,然后再在聚集索引中找。 五、结论 SQL Server 索引是关系型...

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

    索引分为两种主要类型:聚集索引(Clustered Index)和非聚集索引(Nonclustered Index)。下面将详细介绍这两种索引的概念、特点以及在实际操作中的应用。 **聚集索引(Clustered Index)** 聚集索引决定了数据在...

    数据库查询速度优化 建立索引

    数据库索引可以分为聚集索引和非聚集索引两种。聚集索引是一种特殊的目录,它的正文内容本身就是一种按照一定规则排列的目录。这种索引可以快速地查询到所需的数据,例如,我们可以使用聚集索引来快速地查询某个日期...

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

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

    创建索引和调优索引

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

    SQL优化-索引

    SQL优化中的索引是提升数据库查询性能的关键技术。索引可以理解为数据库中的一种特殊目录,帮助快速定位和访问数据。...在实际操作中,应根据具体业务需求灵活运用聚集索引和非聚集索引,以实现最佳的数据库性能。

    Mysql-索引原理分析

    聚集索引和非聚集索引的主要区别在于数据存储的方式。在聚集索引中,索引和数据是合一的,而在非聚集索引中,索引是单独的结构,需要通过书签来定位实际数据。因此,非聚集索引查询通常比聚集索引慢,因为需要额外的...

    深入浅出理解索引结构

    下面是一些示例SQL语句,用于创建聚集索引和非聚集索引: ```sql -- 创建聚集索引 CREATE CLUSTERED INDEX idx_department ON employees(department); -- 创建非聚集索引 CREATE NONCLUSTERED INDEX idx_name ON ...

    SQL Server和Oracle中索引介绍

    在SQL Server中,索引分为聚集索引和非聚集索引。聚集索引决定了表中数据行的物理存储顺序,每张表只能有一个聚集索引。当数据行的排序与索引键相匹配时,这样的表被称为聚集表。聚集索引适用于经常用于范围查询、...

Global site tag (gtag.js) - Google Analytics