美文网首页
mysql索引笔记

mysql索引笔记

作者: shoyu666 | 来源:发表于2022-04-08 22:38 被阅读0次

常见索引的类型

  • hash索引
    适用于等值查询的场景
  • 有序数组
    适用于等值查询和范围查询
  • 搜索数

InnoDB B+树索引

innoDB的索引分2种

  • 聚簇索引(也叫主键索引)
  • 二级索引(也叫非主键索引)


    image.png

    图中左边是聚簇索引,右边是二级索引,两者最大的区别就是叶子节点的内容不一样,聚簇索引的内容是整行数据,二级索引的内容是行的主键。

索引插入
image.png

插入700时,加到R5后面。


image.png

插入400时,R4,R5移动空出位置。如果R5所在的数据页已满的情况下,会申请新的页,然后将部分数据挪到新页,这个过程叫页分裂。

索引的等值查找

select * from T where ID=500 该语句是主键查找方式,直接搜索聚簇索引,即图中左边的索引,直接得到R4.
select * from T where k=5 该语句走的是右边的二级索引,查询到的是500这个主键,所以需要再用500去左侧主键索引搜索,查询到R4这个数据,也就是说二级索引搜索要扫描2次,一次是二级索引,另外一次是主键索引,这个过程叫回表。

索引的范围查找

select * from T where k between 3 and 5


image.png

第一步:使用3扫描二级索引取得ID=300,拿着300扫描主键索引得到R3。
第二部: 取下一个值k=5 取得ID=500,拿着500扫描主键索引得到R4。
第三步: 取下一个值 K=6,不满足 between 3 and 5 的条件,循环结束。

覆盖索引

select ID from T where k between 3 and 5
该语句只查ID,因为二级索引的叶子节已经是ID,所有不需要回表,可以理解为索引已经覆盖了结果范围。

最左前缀原则
image.png

如图的索引,当查张三时,可以快速定位到ID4,然后遍历所需的结果。
where name like ‘张%’ 也能用上索引。
最左前缀可以是联合索引的最左N个字段,也可以是字符串索引的最左M个字符。

索引下推

select * from tuser where name like '张%' and age=10 and ismale=1;
在MySQL 5.6之前,只能从ID3开始一个个回表。到主键索引上找出数据行,再对比字段值
MySQL 5.6 引入的索引下推优化(index condition pushdown), 可以在索引遍历过程中,对索
引中包含的字段先做判断,直接过滤掉不满足条件的记录,减少回表次数。


image.png

相关文章

  • mysql笔记

    mysql笔记 索引创建索引创建唯一索引CREATE UNIQUE INDEX indexName ON tabl...

  • Mysql 索引 & 锁

    Mysql索引在开发工作中经常用到,在此总结一些关于mysql索引的一些学习笔记 1mysql索引的本质是什么? ...

  • 01.MySQL架构与SQL执行流程

    MySql笔记,笔记分为四个部分:1.MySQL架构与SQL执行流程2.MySQL索引原理与使用原则[https:...

  • MySQL索引及查询优化书目录

    MySQL索引的原理之索引目的 MySQL索引的原理之索引原理 MySQL索引的原理之索引的类型 MySQL索引的...

  • MySQL索引(一)

    学习笔记是学习了 极客时间 - 《MySQL实战45讲》整理的笔记。 在 MySQL 中,索引是在存储引擎层实现...

  • 高性能的索引策略

    MySQL查询基础-查询执行过程 MySQL聚簇索引 MySQL覆盖索引 MySQL索引扫描排序 MySQL冗余和...

  • MySQL索引的使用

    MySQL索引 MySQL索引可以快速提高MySQL的检索速度。索引分单列索引和组合索引单列索引:即一个索引只包含...

  • mysql 索引笔记!

    mysql的索引分为单列索引(主键索引,唯一索引,普通索引)和组合索引. 单列索引:一个索引只包含一个列,一个表可...

  • MySQL笔记 - 索引

    前言 索引是存储引擎用于快速找到记录的一种数据结构,和书的目录一样,索引的出现就是为了提高数据的查找效率。 数据量...

  • mysql索引笔记

    常见索引的类型 hash索引适用于等值查询的场景 有序数组适用于等值查询和范围查询 搜索数 InnoDB B+树索...

网友评论

      本文标题:mysql索引笔记

      本文链接:https://www.haomeiwen.com/subject/paxusrtx.html