type索引类型:
system > const > eq_ref > ref > range > index > all优化级别从左往右递减,没有索引的⼀般为’all’,需要对type进⾏优化前提是有索引。其中’system’和’const’只是理想型,实际只能达到’ref’和’range’。
注意:这⾥主要针对MySQL5.6进⾏讲解,与其他版本有区别,但是原理过程⼀致。

创建两张表teacher和teacherCard

# 教师表
create table teacher(tid int(5),tname varchar(20),tcid int(5)
);# 教师卡
create table teacherCard(tcid int(5),tcdesc varchar(20)
);# 插⼊教师信息
insert into teacher values(1,'tz',1);
insert into teacher values(2,'tw',2);
insert into teacher values(3,'tl',3);# 插⼊教师卡信息
insert into teacherCard values(1,'tzdesc');
insert into teacherCard values(2,'twdesc');
insert into teacherCard values(3,'tldesc');# 教师表添加主键索引
alter table teacher add constraint pk_tid primary key(tid);

1.system
衍⽣表只有⼀条数据的主查询;衍⽣表通过主键查询只有⼀条数据,再通过这条数据进⾏主查询。

# 子查询为主键查询
explain select * from (select * from test01 where tid =1)

⼦查询通过主键查询得出⼀条数据(该条数据构成衍⽣表),通过衍⽣表的数据进⾏主查询,其衍⽣表的索引类型为system。

2.const
仅仅能查到⼀条数据的SQL,⽤于primary key 或 unique的索引(其他索引类型不属于)

# 主键查询只有⼀条数据的情况,类型为 const
explain select * from test01 where tid =1

3.eq_ref
唯⼀性索引,表索引与另外表的主键进⾏关联,两张表之间每条数据要⼀⼀对应(每个都要⼀⼀对应,不能⼀个对应多个,不能没有对应),查询的数据在表中是唯⼀性,不能有重复。

# 给 teacherCard 添加主键
alter table teacherCard add constraint pk_tcid primary key(tcid);# 对 teacher 表进⾏索引唯⼀查询
explain select t.tcid from teacher t, teacherCard tc where t.tcid = tc.tcid;

主表(没有外键的表)为eq_ref:

4.ref
⾮唯⼀线性索引,对于每个索引键的查询返回的数据为0或多条。

# 给 teacher 表的 tname 的字段添加索引
alter table teacher add index tname_index (tname);
# 根据 tname = tz 查询出两条数据
explain select * from teacher where tname ='tz';

根据tname索引直接查询出来的值为ref类型。

5.range
检查指定范围⾏,where后⾯是⼀个范围查询(between、in、>、<、=等)。

# 查看range类型的索引
explain select * from teacher t where t.tid in (1,2);
explain select * from teacher where tid between 1 and 2;
explain select * from teacher where tid <3;

根据tname索引直接查询出来的值为ref类型。

6.index
查询索引中的所有数据。

#查询索引的所有数据,其中tname就是索引
explain select tname from teacher


7.all
查询表中的所有数据,或者根据不是索引的字段查询。

#直接查询
explain select * from teacher;

type类型总结:
    system/const:结果只有⼀条数据。
    eq_ref:结果多条,但是每条数据都是唯⼀的。
    ref:结果多条,但是查询到的数据可以是多条,且数据可以重复。
    range:根究索引字段进⾏范围查询。

MySQL索引类型(type)分析相关推荐

  1. mysql 索引都有哪些,mysql索引类型有哪些

    摘要 腾兴网为您分享:mysql索引类型有哪些,易信,微商助手,刷机精灵,数字涂色等软件知识,以及家校即时通,内部通讯录,叫叫识字大冒险,天天酷跑,手机电视高清直播,短信验证软件,诛仙表情包,一手女装 ...

  2. mysql 索引类型案例_Mysql索引类型与基本用法实例分析

    本文实例讲述了Mysql索引类型与基本用法.分享给大家供大家参考,具体如下: 索引 MySQL目前主要有以下几种索引类型: 普通索引 唯一索引 主键索引 组合索引 全文索引 - 普通索引 是最基本的索 ...

  3. mysql 普通索引使用方法,Mysql索引类型与基本用法实例分析

    本文实例讲述了Mysql索引类型与基本用法.分享给大家供大家参考,具体如下: 索引 MySQL目前主要有以下几种索引类型: 普通索引 唯一索引 主键索引 组合索引 全文索引 - 普通索引 是最基本的索 ...

  4. MySQL索引类型详解,让MySQL高效运行起来

    为什么80%的码农都做不了架构师?>>>    索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对 ...

  5. MySQL索引类型一览 让MySQL高效运行起来

    索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytabl ...

  6. 【转】 MySQL索引类型一览 让MySQL高效运行起来 mysql索引注意事项

    索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytabl ...

  7. mysql索引类型 normal, unique, full text

    问题1:mysql索引类型normal,unique,full text的区别是什么? normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用 ...

  8. mysql索引类型normal,unique,full text

    问题1: MySQL索引类型normal,unique,full text的区别是什么? normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号 ...

  9. MySQL索引类型总结和使用技巧以及注意事项

    在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表: 复制代码代码如下: CREATE TABLE mytable(   ID INT NOT NULL,    u ...

  10. mysql的索引类型_带您了解mysql索引类型

    MySQL索引的种类繁多,基本分为四类,下面就为您分别介绍MySQL索引,供您参考,希望可以让您对MySQL索引有更深的认识. MySQL索引类型包括: (1)普通索引 这是最基本的索引,它没有任何限 ...

最新文章

  1. PDF:解决从PDF中复制文字时出现的空方框问题
  2. 矩形波的傅里叶变换_冲激信号、门信号、方波、矩形波的傅里叶变换总结
  3. oracle日记账单据编号未生成_商管财务数据平台Oracle与共享未付池差异如何核对、解决?...
  4. mysql 主从复制介绍_MySQL 主从复制介绍
  5. Java面试——RabbitMQ系列总结
  6. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分
  7. vCenter Server Appliance 所需的端口
  8. Java ---- baidu评价抽取关键词-商品评论
  9. 【渝粤教育】国家开放大学2018年春季 0314-21T兽医基础 参考试题
  10. NTFS For Mac的兼容性问题
  11. 遥感动态监测实验(以福州为例)
  12. 如何进行系统分析与设计
  13. kotlin-stdlib 与 kotlin-stdlib-jdk7
  14. 禁用word公式编辑器
  15. matlab绘制频谱图代码,用MATLAB实现函数的频谱图
  16. 如何把可爱的Live2d看板娘放到自己的网页上
  17. 互联网晚报 | 05月17日 星期二 | 郑州首套房贷利率最低降至4.4%;可口可乐被曝员工不得购买竞品...
  18. 知网下载论文(通过深圳图书馆)
  19. 改变虚拟导航栏(navigation bar)背景色及图标颜色
  20. 联发科6758_联发科p70相当于骁龙什么处理器型号 对比骁龙675哪个好

热门文章

  1. 深度linux怎么备份系统下载,深度操作系统20 1003更新发布 支持系统备份、全盘备份、手动还原等...
  2. java之Reader类与Writer类
  3. 锁与并发工具包与线程池与LockSupport与Fork/Join框架与并行流串行流与阻塞队列与JPS,jstack命令查看死锁查看线程状态与AQS个人笔记九
  4. 如何如何理解区分功能测试和非功能测试
  5. 2021年保安员(初级)考试题及保安员(初级)免费试题
  6. 百亿互金平台技术栈大起底
  7. Python:orator-orm操作实践
  8. 基于ASP.NET的租房系统房产房屋销售系统
  9. 从入门到精通:Java编程基础入门教程
  10. BigNumber 的静态属性含义-(ROUND_DOWN,ROUND_UP,ROUND_CEIL,ROUND_FLOOR,ROUND_HALF_UP,ROUND_HALF_CEIL)