01-MySQL数据结构

type
status
date
slug
summary
tags
category
icon
password

1️⃣ 树结构

2️⃣ 聚簇索引(Clustered Index)

notion image
聚簇索引是将数据的物理存储顺序与索引的顺序一致的一种索引方式。一个表只能有一个聚簇索引,因为数据只能按照一种顺序物理存储。
  • 数据页就是索引页,即索引结构中的叶子节点存储的就是数据本身。
  • 插入/删除操作会导致数据页的移动,以维护顺序。
  • 查询聚簇索引列时效率高,特别是范围查询(如 BETWEEN<>)。

3️⃣ 非聚簇索引(Non-clustered Index)

notion image
非聚簇索引的索引顺序与数据的物理存储顺序无关一个表可以有多个非聚簇索引
  • 索引结构中的叶子节点存储的是指向数据行的指针(主键值或 rowid),而不是数据本身。
  • 查询时,先根据索引找到主键,再回表查询数据(称为“回表”)。
  • 占用空间更多,更新维护成本更高。

4️⃣ InnoDB存储引擎

索引文件和数据文件是分离的 ( 非聚集 )

5️⃣ MyISAM存储引擎

  • 表数据文件本身就是按 B+Tree 组织的一个索引结构文件
  • 聚集索引 - 叶节点包含了完整的数据记录
  • 为什么建议 InnoDB 表必须建主键,并且推荐使用整型的自增主键?
  • 为什么非主键索引结构叶子节点存储的是主键值? ( 一致性和节省存储空间 )
 
上一篇
07-G1&ZGC
下一篇
02-explain
Loading...