首页 > MySQL > 当前页面

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

2024-12-25 NEW个对象

聚簇索引:将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据。

非聚簇索引:将数据与索引分开存储,索引结构的叶子节点指向了数据对应的位置。


非聚簇索引:


在非聚簇索引的叶子节点上存储的并不是真正的行数据,而是主键 ID,所以当我们使用非聚簇索引进行查询时,首先会得到一个主键 ID,然后再使用主键 ID 去聚簇索引上找到真正的行数据,我们把这个过程称之为回表查询。

除去主键索引,还有其它的索引,每个索引都会建立一个B+树,这些B+树是非聚集索引,非聚集索引,非叶子结点存放索引,叶子结点存放表ID


聚簇索引:


innodb通过主键构建一个B+,该B+树用来存放数据(非叶子结点存放主键,叶子结点存放数据),这是聚簇索引。

相关文章

  • Mysql一条sql的写入流程?

    MySQL 在执行写操作时,会先修改 Buffer Pool,并记录 undo log 用于回滚,同时写 redo log(prepare),再写 binlog,最后通过两阶段提交保证 redo log 和 binlog 一致性,从而实现 crash-safe 和主从一致性

    NEW个对象 2026-06-06

  • 什么是索引下推?

    什么是索引下推?

    NEW个对象 2026-06-11

  • SQL的执行流程

    SQL 在 MySQL 中会先经过解析器和优化器生成执行计划,然后由执行器调用存储引擎执行,数据优先从 Buffer Pool 获取,没有则访问磁盘。

    NEW个对象 2026-06-06

NEW个对象 NEW个对象
JAVA是世界上最好的语言