我们可以清楚的看到type那一栏有index、ALL、eq_ref,他们都代表什么意思呢?

一文看懂MySQL索引type级别意思

索引type级别说明:

system>const>eq_ref>ref>range>index>ALL

这是type级别,越左边,查询速度越快。

怎么样才能让type靠左呢,就是建立索引。最左边的俩级,基本达不到。我们让查询type达到第三级和第四级就很好了,为什么这么说呢?
表主键,唯一索引也只能达到eq_ref级别的。
如果不做索引的话 肯定都是ALL了。

Type级别解释
1、system级别
A、只有一条数据的系统表
B、或衍生表只能有一条数据的主查询

很明显 实际开发当中 我们是不会只有一条数据的

2、const级别
仅仅能查出一条的SQL语句并且用于Primary key 或 unique索引;
SELECT * from shop s where s.id=?
主键索引、唯一索引和unique索引达到这个级别,我们写sql要根据公司的业务去写,这个情况也很难达到的。

3、eq_ref级别
唯一性索引:对于每个索引键的查询,返回匹配唯一行数据(有且只有1个,不能多,不能0);
比如你select …from 一张表 where 比方说有一个字段 name = 一个东西,也就是我们以name作为索引,假设我之前给name加了一个索引值,我现在根据name去查,查完后有20条数据,我就必须保证这二十条数据每行都是唯一的,不能重复不能为空!

只要满足以上条件,你就能达到eq_ref,当然前提是你要给name建索引,如果name连索引都没,那你肯定达不到eq_ref;

此种情况常见于唯一索引和主键索引;

比如我根据name去查,但是一个公司里面或一个学校里面叫name的可能不止一个,一般你想用这个的时候,就要确保你这个字段是唯一的,id就可以,你可以重复两个张三,但是你身份证肯定不会重复;

添加唯一键语法:alter table 表名 add constraint 索引名 unique index(列名)

检查字段是否唯一键:show index form 表名;被展示出来的皆是有唯一约束的;

4、ref级别
ref级别的问题不大。

非唯一性索引:对于每个索引键的查询,返回匹配的所有行(可以是0,或多个)。

假设有俩张三,我建立了非唯一索引,那么查出来就是这个级别拉,是不是很简单。

5、range级别
检索指定范围的行,查找一个范围内的数据,where后面是一个范围查询 (between,in,> < >=);
in有时有可能会失效,导致为ALL;
(in失效的情况 我是没试出来…) 你们可以试试

6、index级别
把索引的数据全查出来 就是这个级别了

7、ALL级别
不走索引 就是all级别咯

MySQL索引type级别意思相关推荐

  1. Mysql索引命中级别

    Mysql索引命中级别 type结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null &g ...

  2. mysql 查询优化 索引 type级别

    mysql查询速度优化 这是type级别 越左边 查询速度越快 system>const>eq_ref>ref>range>index>ALL 怎么样才能让type ...

  3. mysql,索引命中,查询级别

    mysql索引无法命中情况 1,查询占表数据30%以上 2,小表查询 3,规定不用索引查询 4,查询条件给字符串加引号用索引,否则不用 5,条件中用到or,除非涉及到的列都有索引否则不命中 6,lik ...

  4. B+Tree索引为什么可以支持千万级别数据量的查找——讲讲mysql索引的底层数据结构

    MySQL索引底层数据结构 索引是存储引擎快速找到记录的一种数据结构 一. 有索引与没索引的差距 先来看一张图: 左边是没有索引的情况,右边是作为col2字段 二叉树索引的情况. 假如执行查找(假设表 ...

  5. mysql索引级别快慢_面试小点-MySQL 的两种索引方法如何提高查询速度

    MySQL 索引的建立对于 MySQL 的高效运行是很重要的,索引可以大大提高 MySQL 的检索速度. 索引方法 Mysql 的索引方法有两种,BTERR 和 HASH. 散列表(Hash Tabl ...

  6. mysql索引空间太大_MySQL优化索引

    1.  MySQL如何使用索引 索引用于快速查找具有特定列值的行.如果没有索引,MySQL必须从第一行开始,然后遍历整个表以找到相关的行.表越大,花费越多.如果表中有相关列的索引,MySQL可以快速确 ...

  7. MySQL索引管理及执行计划

    MySQL索引管理及执行计划 第1章 索引介绍: 索引是对数据库表中一列或者多列 的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息,如果想按特定职员的姓名来查找,则与他在表中搜索所有的 ...

  8. MySQL索引 专题

    什么是索引 索引是存储引擎用于快速找到记录的一种数据结构,索引类似一本书的目录,我们可以快速的根据目录查找到我们想要的内容的所在页码,索引的优化应该是对查询性能优化最有效的手段了. 因此,首先你要明白 ...

  9. mysql 分组占比_含泪整理MySQL索引

    索引优化分析 性能下降SQL慢 查询语句写的差 索引失效 单值索引 多值索引 关联查询太多join(设计缺陷或不得已的需求) 服务器调优以及各个参数设置(缓冲.线程数等) 执行时间长 等待时间长 常见 ...

最新文章

  1. js 时间戳转为时间
  2. MFC的sendmessage和postmessage 以及sendmessagetimeout
  3. 整合JDBC---SpringBoot
  4. 装B指南之使用浏览器播放电影
  5. 吴恩达机器学习作业(五):支持向量机
  6. OpenShift 4 之Kafka(1)-部署Strimzi Operator运行Kafka应用
  7. 【Python - wxpython】- 卫星通信系统链路计算软件
  8. Linux网络流量监控
  9. 如何拼接多张图片,多张图片拼接成一张
  10. Memory Leak
  11. 截图工具(窗体永远前置)
  12. WordPress好看的自适应企业站Start主题
  13. PyCharm配置SSH和SFTP连接远程服务器
  14. python导入excel散点图_Python 写excel文件并插入散点图
  15. 玩客云pc端_玩客云下载 玩客云电脑版下载
  16. 2020-04-19-如何在博客中添加视频链接
  17. PCDN服务接入实操手册
  18. Synaptics操作指南
  19. 一起来找茬:下面这段代码是让计算机在屏幕上输出“hi”。其中有三个错误,快来改正吧
  20. 【渝粤题库】陕西师范大学151107 管理会计 作业(高起专)

热门文章

  1. html的flash怎么放大缩小,在flash里怎么设置flash右键不出现放大缩小
  2. 时间管理课程笔记【待更】
  3. 抖音矩阵系统/短视频矩阵系统开发分享
  4. java多态(java多态的概念)
  5. 我经历过的失败产品和项目(六):体验很差的视频会议系统
  6. Google Guava Cache高效本地缓存
  7. 计算机操作wps教程,电脑wps教程,
  8. js实现方块弹珠游戏
  9. 北大青鸟 accp 4.0:面试中说错减分的一句话
  10. 苹果开发者账号 转让已上架的App应用(更换开发者账号)