千家信息网

mysql索引命中规则的说明

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要讲解了"mysql索引命中规则的说明",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"mysql索引命中规则的说明"吧!首先我们来了解一下最左
千家信息网最后更新 2026年11月04日mysql索引命中规则的说明

这篇文章主要讲解了"mysql索引命中规则的说明",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"mysql索引命中规则的说明"吧!

首先我们来了解一下最左匹配原则,如下:

1、先定位该sql的查询条件,有哪些,那些是等值的,那些是范围的条件。

2、等值的条件去命中索引最左边的一个字段,然后依次从左往右命中,范围的放在最后。

分析讲解

1、mysql的索引分为聚簇索引和非聚簇索引,mysql的表是聚集索引组织表。

聚集规则是:有主键则定义主键索引为聚集索引;没有主键则选第一个不允许为NULL的唯一索引;还没有就使用innodb的内置rowid为聚集索引。

(免费学习视频教程推荐:mysql视频教程)

非聚集索引也称为二级索引,或者辅助索引。

2、mysql的索引无论是聚集索引还是非聚集索引,都是B+树结构。聚集索引的叶子节点存放的是数据,非聚集索引的叶子节点存放的是非聚集索引的key和主键值。B+树的高度为索引的高度。

3、索引的高度

聚集索引的高度决定了根据主键取数据的理论IO次数。根据非聚集索引读取数据的理论IO次数还要加上访问聚集索引的IO次数总和。实际上可能要不了这么多IO。因为索引的分支节点所在的Page因为多次读取会在mysql内存里cache住。

mysql的一个block大小默认是16K,可以根据索引列的长度粗略估算索引的高度。

sql优化依据

SQL语句中的where条件,使用以上的提取规则,最终都会被提取到Index Key (First Key & Last Key),Index Filter与Table Filter之中。

Index First Key,只是用来定位索引的起始范围,因此只在索引第一次Search Path(沿着索引B+树的根节点一直遍历,到索引正确的叶节点位置)时使用,一次判断即可;

Index Last Key,用来定位索引的终止范围,因此对于起始范围之后读到的每一条索引记录,均需要判断是否已经超过了Index Last Key的范围,若超过,则当前查询结束;

Index Filter,用于过滤索引查询范围中不满足查询条件的记录,因此对于索引范围中的每一条记录,均需要与Index Filter进行对比,若不满足Index Filter则直接丢弃,继续读取索引下一条记录;

Table Filter,这是最后一道where条件的防线,用于过滤通过前面索引的层层考验的记录,此时的记录已经满足了Index First Key与Index Last Key构成的范围,并且满足Index Filter的条件,回表读取了完整的记录,判断完整记录是否满足Table Filter中的查询条件,同样的,若不满足,跳过当前记录,继续读取索引的下一条记录,若满足,则返回记录,此记录满足了where的所有条件,可以返回给前端用户

分析

一条sql语句要执行完成需要经历什么样的过程?

当一条sql语句提交给mysql数据库进行查询的时候需要经历以下几步:

1、先在where解析这一步把当前的查询语句中的查询条件分解成每一个独立的条件单元;

2、mysql会自动将sql拆分重组;

3、然后where条件会在B-tree index这部分进行索引匹配,如果命中索引,就会定位到指定的table records位置。如果没有命中,则只能采用全部扫描的方式;

4、根据当前查询字段返回对应的数据值。

感谢各位的阅读,以上就是"mysql索引命中规则的说明"的内容了,经过本文的学习后,相信大家对mysql索引命中规则的说明这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

索引 条件 范围 查询 规则 数据 节点 高度 语句 学习 定位 次数 位置 内容 叶子 字段 教程 理论 视频 分析 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州淘业互联网络科技 广东猪兼强互联网科技有限公司 互联网科技工作委员会毛军 科技金融是不是互联网金融 互联网是不是新科技 互联网科技开发公司 未来的互联网科技 狮子座互联网科技培训 济南和联互联网科技有限公司 互联网之后的科技是什么 中国互联网有什么科技含量 央行互联网金融科技公司 承德科技产业互联网发展 金融科技与互联网金融相同和不同 互联网科技教育视频 受益于互联网科技的高速发展 健康食品互联网创新科技园项目 乌苏新华互联网科技做什么的 华夏恒生科技与互联网科技 广州三三互联网科技有限公司 广州紫鲸互联网科技有限公司 重庆互联网络科技 沃里互联网科技 中国科技互联网公司收入 剑昆互联网络科技有限公司临桂 山东星卡互联网科技有限公司官网 信承诺互联网科技有限公司 互联网科技大会大佬 平安好医生打造互联网科技医疗 瑞安市蟠桃会互联网科技有限公司
0