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

mysql的索引分类

索引分类

MySQL 数据库,将索引的具体类型主要分为以下几类:主键索引、唯一索引、常规索引、全文索引。
分类
含义
特点
关键字
主键
索引
针对于表中主键创建的索引
默认自动创建 , 只能
有一个
PRIMARY
唯一
索引
避免同一个表中某数据列中的值重复
可以有多个
UNIQUE
常规
索引
快速定位特定数据
可以有多个
全文
索引
全文索引查找的是文本中的关键词,而不是比较索引中的值
可以有多个
FULLTEXT

聚集索引、二级索引

InnoDB 存储引擎中,根据索引的存储形式,又可以分为以下两种
分类
含义
特点
特点
聚集索引 (Clustered Index)
将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据
必须有 , 而且只 有一个
二级索引 (Secondary Index)将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键
将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键
可以存在多个
聚集索引选取规则
  1. 如果存在主键,主键索引就是聚集索引。
  2. 如果不存在主键,将使用第一个唯一(UNIQUE)索引作为聚集索引。
  3. 如果表没有主键,或没有合适的唯一索引,则InnoDB会自动生成一个rowid作为隐藏的聚集索

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

当我们执行如下的SQL语句时 select *from user where name='Arm'; 具体过程如下:

  1. 由于是根据name字段进行查询,所以先根据name='Arm'name字段的二级索引中进行匹配查找。但是在二级索引中只能查找到 Arm 对应的主键值 10
  2. 由于查询返回的数据是*,所以此时,还需要根据主键值10,到聚集索引中查找10对应的记录,最终找到10对应的行row
  3. 最终拿到这一行的数据,直接返回即可。
回表查询: 这种先到二级索引中查找数据,找到主键值,然后再到聚集索引中根据主键值,获取
数据的方式,就称之为回表查询。

 问题

以下两条 SQL 语句,那个执行效率高 ? 为什么?(备注 : id 为主键, name 字段创建的有索引;)
A. select * from user where id = 10 ;
B. select * from user where name = 'Arm' ;
解答:
A 语句的执行性能要高于 B 语句。
因为 A 语句直接走聚集索引,直接返回数据。 而 B 语句需要先查询 name 字段的二级索引,然
后再查询聚集索引,也就是需要进行回表查询。
http://www.lryc.cn/news/166020.html

相关文章:

  • 【校招VIP】java语言考点之并发相关
  • nginx实现路由重定向功能 避免服务器出现 404 Not Found
  • Flask+pyecharts+SQLAlchemy,统计图的数据存放在mysql中,综合版
  • SQL注入类型判断
  • ElasticSearch的安装部署-----图文介绍
  • Unity粒子系统ParticleSystem各模块及其参数学习
  • vue3实现卡片翻牌
  • 算法训练营day45|动态规划 part07:完全背包 (LeetCode 70. 爬楼梯(进阶)、322. 零钱兑换、279.完全平方数)
  • 【大模型】更强的开源可商用的中英文大语言模型baichuan2来了,从零开始搭建
  • ElasticSearch系列-简介与安装详解
  • Layui + Flask | 表单组件(组件篇)(07)
  • 【实践篇】Redis最强Java客户端Redisson
  • esxi扩容磁盘
  • 核心实验21_BGP高级(了解)(配置略)_ENSP
  • 宝塔安装python和openssl
  • TDengine 3.1.1.0 来啦!更新如下
  • YSA Toon (Anime/Toon Shader)
  • LabVIEW通过IEC61508标准验证ITER联锁系统
  • 如何处理日期和时间?
  • 【开发】视频集中存储/直播点播平台EasyDSS点播文件分类功能优化
  • 论文多级编号-word2010
  • Jetpack Compose基础组件之 — Text
  • 动手学深度学习——Windows下的环境安装流程(一步一步安装,图文并配)
  • 打印日志遇到的问题,logback与zookeeper冲突
  • 【Node.js操作SQLite指南】
  • PyTorch之张量的相关操作大全 ->(个人学习记录笔记)
  • ChatGPT生成内容很难脱离标准化,不建议用来写留学文书
  • sqlserver @@ROWCOUNT的使用
  • Hbase批量删除数据
  • 飞行动力学 - 第20节-part2-机翼上反及后掠对横向静稳定性的影响 之 基础点摘要