如何区分数据库中的聚集索引与非聚集索引?

2026-04-19 22:461阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计930个文字,预计阅读时间需要4分钟。

如何区分数据库中的聚集索引与非聚集索引?

原文参考其他优秀文章做以下总结,随后附上原链+简介+索引概念:

索引是关系型数据库中给数据库表中的某一列(或多个列)设置的一种数据结构,用于提高数据检索效率。它类似于书的目录,可以帮助快速定位到所需数据。

索引结构包括:

B+树:支持全表扫描,适用于范围查询。

Hash:不支持全表扫描,适用于等值查询。

原链:[原链接]

简介:本文介绍了索引的概念、作用以及常见的索引结构。

索引概念:索引是一种数据结构,用于提高数据检索效率。

本文参考其他优秀文章做下总结,随后附上原链

简介

索引概念:索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构

索引结构:B+树(支持查询较全),Hash结构(不支持范围查询)

聚集索引以及非聚集索引用的是B+树索引

聚集索引(类似于id [主键唯一])

定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。

举栗子:新华字典的拼音目录(如下图所示解释定义)

地址

id

username

score

0x01

1

小明

90

0x02

2

小红

80

0x03

3

小华

92

..

..

如何区分数据库中的聚集索引与非聚集索引?

..

..

0xff

256

小英

70

注:第一列的地址表示该行数据在磁盘中的物理地址,后面三列是我们SQL里面用的表里的列,其中id是主键,建立了聚集索引

非聚集索引(类似于外键 [可有多个])

定义:该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引。

举栗子:新华字典的偏旁目录(存在二次查询问题)

如下图实例

解决非聚集索引的二次查询问题

使用场景

小结

  • 使用聚集索引的查询效率要比非聚集索引的效率要高,但是如果需要频繁去改变聚集索引的值,写入性能并不高,因为需要移动对应数据的物理位置。
  • 非聚集索引在查询的时候可以的话就避免二次查询,这样性能会大幅提升。
  • 不是所有的表都适合建立索引,只有数据量大表才适合建立索引,且建立在选择性高的列上面性能会更好。
  • 聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。
  • 聚集索引,在索引页里直接存放数据,而非聚集索引在索引页里存放的是索引,这些索引指向专门的数据页的数据。
  • 以上聚集索引类比新华字典拼音查找,非聚类索引类比新华字典偏旁查找
  • 本文共计930个文字,预计阅读时间需要4分钟。

    如何区分数据库中的聚集索引与非聚集索引?

    原文参考其他优秀文章做以下总结,随后附上原链+简介+索引概念:

    索引是关系型数据库中给数据库表中的某一列(或多个列)设置的一种数据结构,用于提高数据检索效率。它类似于书的目录,可以帮助快速定位到所需数据。

    索引结构包括:

    B+树:支持全表扫描,适用于范围查询。

    Hash:不支持全表扫描,适用于等值查询。

    原链:[原链接]

    简介:本文介绍了索引的概念、作用以及常见的索引结构。

    索引概念:索引是一种数据结构,用于提高数据检索效率。

    本文参考其他优秀文章做下总结,随后附上原链

    简介

    索引概念:索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构

    索引结构:B+树(支持查询较全),Hash结构(不支持范围查询)

    聚集索引以及非聚集索引用的是B+树索引

    聚集索引(类似于id [主键唯一])

    定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。

    举栗子:新华字典的拼音目录(如下图所示解释定义)

    地址

    id

    username

    score

    0x01

    1

    小明

    90

    0x02

    2

    小红

    80

    0x03

    3

    小华

    92

    ..

    ..

    如何区分数据库中的聚集索引与非聚集索引?

    ..

    ..

    0xff

    256

    小英

    70

    注:第一列的地址表示该行数据在磁盘中的物理地址,后面三列是我们SQL里面用的表里的列,其中id是主键,建立了聚集索引

    非聚集索引(类似于外键 [可有多个])

    定义:该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引。

    举栗子:新华字典的偏旁目录(存在二次查询问题)

    如下图实例

    解决非聚集索引的二次查询问题

    使用场景

    小结

  • 使用聚集索引的查询效率要比非聚集索引的效率要高,但是如果需要频繁去改变聚集索引的值,写入性能并不高,因为需要移动对应数据的物理位置。
  • 非聚集索引在查询的时候可以的话就避免二次查询,这样性能会大幅提升。
  • 不是所有的表都适合建立索引,只有数据量大表才适合建立索引,且建立在选择性高的列上面性能会更好。
  • 聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。
  • 聚集索引,在索引页里直接存放数据,而非聚集索引在索引页里存放的是索引,这些索引指向专门的数据页的数据。
  • 以上聚集索引类比新华字典拼音查找,非聚类索引类比新华字典偏旁查找