当前位置: 首页 > news >正文

Mysql--索引分类

Mysql--索引分类

  • 1. 索引分类
  • 2. 聚集索引&二级索引

1. 索引分类

在MySQL数据库,将索引的具体类型主要分为以下几类:主键索引、唯一索引、常规索引、全文索引。

在这里插入图片描述

2. 聚集索引&二级索引

而在在InnoDB存储引擎中,根据索引的存储形式,又可以分为以下两种:

在这里插入图片描述
聚集索引选取规则:

  1. 如果存在主键,主键索引就是聚集索引。
  2. 如果不存在主键,将使用第一个唯一(UNIQUE)索引作为聚集索引。
  3. 如果表没有主键,或没有合适的唯一索引,则InnoDB会自动生成一个rowid作为隐藏的聚集索引。

聚集索引和二级索引的具体结构如下:
在这里插入图片描述

  • 聚集索引的叶子节点下挂的是这一行的数据 。
  • 二级索引的叶子节点下挂的是该字段值对应的主键值。

接下来,我们来分析一下,当我们执行如下的SQL语句时,具体的查找过程是什么样子的。
在这里插入图片描述
具体过程如下:
①. 由于是根据name字段进行查询,所以先根据name='Arm’到name字段的二级索引中进行匹配查找。但是在二级索引中只能查找到 Arm 对应的主键值 10。

②. 由于查询返回的数据是*,所以此时,还需要根据主键值10,到聚集索引中查找10对应的记录,最终找到10对应的行row。

③. 最终拿到这一行的数据,直接返回即可。

回表查询: 这种先到二级索引中查找数据,找到主键值,然后再到聚集索引中根据主键值,获取
数据的方式,就称之为回表查询。

思考题:
以下两条SQL语句,那个执行效率高? 为什么?
A. select * from user where id = 10 ;
B. select * from user where name = ‘Arm’ ;
备注: id为主键,name字段创建的有索引;

解答:
A 语句的执行性能要高于B 语句。
因为A语句直接走聚集索引,直接返回数据。 而B语句需要先查询name字段的二级索引,然后再查询聚集索引,也就是需要进行回表查询。

思考题:
InnoDB主键索引的B+tree高度为多高呢?
在这里插入图片描述
假设:
一行数据大小为1k,一页中可以存储16行这样的数据。InnoDB的指针占用6个字节的空间,主键即使为bigint,占用字节数为8。

高度为2:
n * 8 + (n + 1) * 6 = 161024 , 算出n约为 1170
1171
16 = 18736
也就是说,如果树的高度为2,则可以存储 18000 多条记录。

高度为3:
1171 * 1171 * 16 = 21939856
也就是说,如果树的高度为3,则可以存储 2200w 左右的记录。

http://www.lryc.cn/news/305710.html

相关文章:

  • AutoTimes:通过大语言模型的自回归时间序列预测器
  • 记录 | go与C/C++交互
  • B3623枚举排列
  • vuex怎么防止数据刷新丢失?
  • OpenGL ES 渲染 NV21、NV12、I420、YV12、YUYV、UYVY、I444(建议收藏)
  • 云计算的两地三中心和灾备介绍
  • Spring Bean
  • Linux的时间操作
  • 2024-02-21 作业
  • 平台组成-监控服务
  • 探索分布式强一致性奥秘:Paxos共识算法的精妙之旅
  • 使用 ES|QL 优化可观察性:简化 Kubernetes 和 OTel 的 SRE 操作和问题解决
  • Docker 第十九章 : 阿里云个人镜像仓使用
  • 二、系统知识笔记-系统架构概述
  • 【高德地图】Android高德地图绘制标记点Marker
  • 每天一个知识点 - 如何快速熟悉后端项目
  • 如何将cocos2d-x js打包部署到ios上 Mac M1系统
  • pdffactory pro 8中文破解版
  • 常用ADB命令整理已经ADB键盘输入
  • buuctf_N1BOOK_粗心的小李
  • 爬取链家二手房房价数据存入mongodb并进行分析
  • 论文阅读:Ground-Fusion: A Low-cost Ground SLAM System Robust to Corner Cases
  • 一键获取电商平台商品信息,快速提高电商业务效率
  • vue 中实现音视频播放进度条(满足常见开发需求)
  • 【广度优先搜索】【网格】【割点】1263. 推箱子
  • 论文精读--GPT1
  • C/C++的内存管理(1)
  • C 标准库 - <stdlib.h>
  • Python中回调函数的理解与应用
  • 抖音数据挖掘软件|视频内容提取