三十三、【进阶】索引的分类

1、索引的分类

(1)总分类

主键索引、唯一索引、常规索引、全文索引

(2)InnoDB存储引擎中的索引分类

2、 索引的选取规则(InnoDB存储引擎)

如果存在主键,主键索引就是聚集索引;

如果不存在主键,将使用第一个"唯一(UNIQUE)索引"作为聚集索引;

如果表没有主键,并且没有合适的唯一索引,那么InnoDB存储引擎将自动生成一个rowid作为隐藏的聚集索引;

3、说明

(1)聚集索引(由主键构成):

如果一张表有主键,主键构建的主键索引就是一个聚集索引,其将会构成一个B+树。

根据聚集索引的结构,叶子节点下挂着的数据,就是该主键所对应的行数据。

(2)二级索引(name字段):

当以"name"字段建立一个索引时,也是以B+树的形式存储其节点,其叶子节点下挂着的数据,是其所在行的"聚集索引",如name='Ruby',其叶子节点下挂着的数据,就是"id=8"。

(3) 执行流程解释:

当执行如下语句时:

sql 复制代码
select * from user where name="Arm";

首先,找到"Arm",然后找到"Arm"下面挂着的id,发现id=10,然后(在关于id字段的B+树中)找到id=10,最后输出其下挂着的数据。

相关推荐
云和恩墨11 分钟前
多元异构时代 DBA 的救赎:AI 驱动下,从 DeepSeek 到 zCloud 的全流程突围
数据库
被闲置的鱼18 分钟前
麒麟OS各种环境安装脚本,达梦数据库DM8、JDK安装、Nginx安装、vsftpd安装、硬盘挂载一件安装脚本
java·linux·数据库·nginx·kylin
代码游侠21 分钟前
应用——Linux 标准IO编程
linux·前端·数据库·学习·算法
Hello.Reader24 分钟前
Flink SQL Window Join 把时间维度“写进” JOIN 条件里
数据库·sql·flink
爬山算法29 分钟前
Redis(172)如何使用Redis实现分布式队?
数据库·redis·分布式
古城小栈33 分钟前
QPS统计好,睡觉不会被打扰
运维·数据库·压力测试
shayudiandian35 分钟前
一键部署MySQL黑科技
数据库·科技·mysql
Misnice39 分钟前
使用 SQLAlchemy 连接数据库
数据库·python·mysql·fastapi
Shingmc31 小时前
MySQL数据类型
数据库·mysql
秦jh_1 小时前
【Qt】信号与槽
服务器·开发语言·数据库·qt