id: 当前查询语句中,每个SELECT语句的编号,     id: 1  表示简单类型的查询

  复杂类型的查询有三种:简单子查询,用于FROM中的子查询,联合查询:UNION

  注意:UNION查询的分析结果会出现一张额外匿名临时表

select_type:

    简单查询为SIMPLE

    复杂查询:

        SUBQUERY: 简单子查询

            DERIVED: 用于FROM中的子查询    

        UNION:UNION语句的第一个之后的SELECT语句

        UNION RESULT: 匿名临时表 

简单子查询示例:

    PRIMARY:主查询或整个查询语句的最外层查询

    SUBQUERY:用在where子句中的子查询

联合查询示例:

table:SELECT语句关联到的表

type:关联类型,或访问类型,即MariaDB决定的如何去查询表中的行的方式

    ALL: 全表扫描

    index:根据索引的次序进行全表扫描;如果在Extra列出现“Using index”表示了使用覆盖索引,而非全表扫描

      range:有范围限制的根据索引实现范围扫描;扫描位置始于索引中的某一点,结束于另一点

    ref: 根据索引返回表中匹配某单个值的所有行

    eq_ref:仅返回一行,但需要额外与某个参考值做比较

    const, system: 直接返回单个行

    性能从上到下依次提升

possible_keys:查询可能会用到的索引

key: 查询中使用了的索引

key_len: 在索引中使用的字节数

ref: 在利用key字段所表示的索引完成查询时所有的列或某常量值

rows:MariaDB估计为找所有的目标行而需要读取的行数

Extra:额外信息

    Using index:MySQL将会使用覆盖索引,以避免访问表

    Using where:MySQL服务器将在存储引擎检索后,再进行一次过滤

    Using temporary:MySQL对结果排序时会使用临时表

    Using filesort:对结果使用一个外部索引排序

InnoDB:

  处理大量的短期事务

  数据存储于“表空间(table space)”中

    (1) 所有InnoDB表的数据和索引放置于同一个表空间中

      表空间文件:datadir定义的目录下

        数据文件:ibddata1, ibddata2, ...

    (2) 每个表单独使用一个表空间存储表的数据和索引

      innodb_file_per_table=ON   查看是否开启(show global variables like 'innodb_file_%';)

      数据文件(存储数据和索引):tbl_name.ibd

      表格式定义:tbl_name.frm

lock table students read; 只允许对students表查询(不过仍然可以从缓存中取数据)   释放:unlock table;

lock table students write;  连查询请求都不允许

      

mariadb的explain分析及InnoDB存储引擎的更多相关文章

  1. Mysql加锁处理分析-基于InnoDB存储引擎

    MVCC MySQL INNODB存储引擎,实现的是基于多版本的并发控制协议——MVCC (Multi-VERSION Concurrency Control).MVCC最大的好处,相信也是耳熟能详: ...

  2. MySQL内核:InnoDB存储引擎 卷1

    MySQL内核:InnoDB存储引擎卷1(MySQL领域Oracle ACE专家力作,众多MySQL Oracle ACE力捧,深入MySQL数据库内核源码分析,InnoDB内核开发与优化必备宝典) ...

  3. MySQL数据库InnoDB存储引擎多版本控制(MVCC)实现原理分析

    文/何登成 导读:   来自网易研究院的MySQL内核技术研究人何登成,把MySQL数据库InnoDB存储引擎的多版本控制(简称:MVCC)实现原理,做了深入的研究与详细的文字图表分析,方便大家理解I ...

  4. 在MySQL的InnoDB存储引擎中count(*)函数的优化

    写这篇文章之前已经看过了很多数据库方面的优化内容,大部分都是加索引.使用事务.要什么select什么等等.然而,只是停留在阅读的层面上,很少有实践,因为没有遇到真实的项目,一切都是纸上谈兵.实践是检验 ...

  5. [MySQL Reference Manual]14 InnoDB存储引擎

    14 InnoDB存储引擎 14 InnoDB存储引擎 14.1 InnoDB说明 14.1.1 InnoDB作为默认存储引擎 14.1.1.1 存储引擎的趋势 14.1.1.2 InnoDB变成默认 ...

  6. myisam、innodb存储引擎比较

    MYSQL表类型(存储引擎) 1.概述 MySQL数据库其中一个特性是它的存储引擎是插件式的.用户可以根据应用需要选择存储引擎.Mysql默认支持多种存储引擎,以适用各种不同的应用需要.默认情况下,创 ...

  7. 《MySQL技术内幕:InnoDB存储引擎(第2版)》书摘

    MySQL技术内幕:InnoDB存储引擎(第2版) 姜承尧 第1章 MySQL体系结构和存储引擎 >> 在上述例子中使用了mysqld_safe命令来启动数据库,当然启动MySQL实例的方 ...

  8. MySQL InnoDB存储引擎体系架构 —— 索引高级

    转载地址:https://mp.weixin.qq.com/s/HNnzAgUtBoDhhJpsA0fjKQ 世界上只两件东西能震撼人们的心灵:一件是我们心中崇高的道德标准:另一件是我们头顶上灿烂的星 ...

  9. MySQL InnoDB存储引擎

    200 ? "200px" : this.width)!important;} --> 介绍 本篇文章是对Innodb存储引擎的概念进行一个整体的概括,innodb存储引擎的 ...

随机推荐

  1. GridView内容<br />换行

    if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Cells[].Text = Server.HtmlDecode(e.Row.Cell ...

  2. nyoj 85 有趣的数

    点击打开链接 有趣的数 时间限制:3000 ms  |  内存限制:65535 KB 难度: 描述 把分数按下面的办法排成一个数表. 1/1 1/2 1/3 1/4..... 2/1 2/2 2/3. ...

  3. NYOJ 49-开心的小明:01背包

    点击打开链接 开心的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是 ...

  4. 黑马程序员_Java基本数据的自动拆装箱及享元设计模式视频学习笔记

    ------- android培训.java培训.期待与您交流! ---------- 装箱:把基本数据类型装成java类(被托管?).         拆箱:把java类拆成基本数据类型(取消托管? ...

  5. Spark是一种分布式的计算方案

    Spark的安装基于HDFS,所以我们要设置hadoop的配置文件,所以spark的存储不是其主要的功能点,而spark作为分布式生态中的角色是一种计算模式(其他 的计算 模式,比如MR,Storm, ...

  6. PetaPoco修改

    else if (type == typeof(decimal)) return (decimal)pk == default(decimal); public override void PreEx ...

  7. document.styleSheets[0]是个啥

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. js对象3--工厂方法加深引出原型--杂志

    继续上一章的案例讲解: <script type="text/javascript"> function createPreason(name,sex){ //他的怪癖 ...

  9. Android开发-API指南-服务

    Service 英文原文:http://developer.android.com/guide/components/services.html 采集(更新)日期:2014-12-23 原博客:htt ...

  10. 多XML追加操作

    假设要统计当前系统中所有的试卷进行分析,试卷是以XML格式存储的,所有这就需要将所有零散的XML文件整合起来,处理成一个完整的XML文件,进行分析, 下面是简单额处理方法: 当前XML文件格式: &l ...