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. 立体匹配:关于Middlebury提供的源码的简化使用

    Middlebury提供的源码,虽然花了不到一个小时就运行起来啦.但说实话,它那循环读取脚本命令来执行算法真是让我费了不少头脑,花了近三天时间,我才弄明白了它的运行机制.你说,我就想提取一下算法,你给 ...

  2. Codeforces 119C DP

    题意: 有n天,m门课和常数k; 每天上一门课,每门课程有两个属性,最少作业量a,最多作业量b,和难度c. 1<=a<=b<=1e16 c<=100 1<=n<=m ...

  3. [POJ 2923] Relocation (动态规划 状态压缩)

    题目链接:http://poj.org/problem?id=2923 题目的大概意思是,有两辆车a和b,a车的最大承重为A,b车的最大承重为B.有n个家具需要从一个地方搬运到另一个地方,两辆车同时开 ...

  4. 安装Weblogic11g

    1.下载weblogic11g http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-for-dev-1703574. ...

  5. @valid表单验证demo

    springMVC 表单验证demo  视图层使用的是jsp

  6. nfs挂在内核出错 T T *** ERROR: Cannot umount

    今天在U-boot挂载nfs内核是出现如下错误,网上查了解决方案. SOCFPGA_CYCLONE5 # nfs 20000 192.168.0.75:/work/nfs_root/uImageWai ...

  7. JavaScript对象的创建总结

    方式 缺点 优点 基于已有对象扩充属性和方法 不可重用,没有约束 无 工厂方法 检测不出是什么的实例 简单封装,可以传参 构造方法 每创建一个对象就有开辟存放方法的空间 能通过instanceof检测 ...

  8. css3实现小米商城鼠标移动图片上浮阴影效果

    今天在编程爱好者编码库看见一个好玩的程序,代码如下. <!DOCTYPE html> <html> <head>     <meta charset=&quo ...

  9. Appium小试

    最近有空玩了一下Appium,记录一下 1.下载Appium for windows,现在是0.12.3版本 https://bitbucket.org/appium/appium.app/downl ...

  10. python连mysql时避免出现乱码

    使用python连mysql时候,常常出现乱码,采取以下措施可以避免 1 Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)2 MySQL数据库charset=ut ...