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. VisualVM 性能分析概述

    VisualVM是一个免费的Java应用监控.分析工具. 简单说来,VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力.所有这些都是免费的!它囊括的命令行工具包括 ...

  2. esriSRProjCS2Type Constants

    ArcGIS Developer Help  (Geometry)   esriSRProjCS2Type Constants See Also esriSRProjCSType Constants ...

  3. sql server 2008 System.Data.SqlClient.SqlException (0x80131904): 查询处理器未能为执行并行查询启动必要的线程资源 处理方法

    修改并行度: 修改了这个“最大并行度”,如果再没出现 cxpacket应该没问题了 参考资料:http://jingyan.baidu.com/article/5d6edee22daf8799eade ...

  4. .NET基础操作回顾_使用ADO.NET操作SqlServer使用的类

    有些工具用的久了或者有新工具出现后,就慢慢的遗忘了很多,它们从熟悉的变成陌生,当然,对于我们来说不是好事吧. 今天回顾一下ADO.NET用到的MS的基础类库,先上代码(标准的SqlServer操作) ...

  5. router os

    http://www.oschina.net/news/47568/router-operation-system

  6. css first-letter实现首字(字母)下沉效果

    css 首字下沉效果原理 首字下沉主要使用到css的first-letter伪元素,然后配合使用font-size和float来设置文字的样式即可实现. first-letter选择器选取指定元素文本 ...

  7. Ubuntu Qt arm-linux-androideabi-gcc: Command not found

    :-1: error: /opt/Qt/android-ndk-r9c/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm- ...

  8. 你很牛B,面试却没过,为什么?

    点击标题下「飞测」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期 ...

  9. Objective-C的内存管理

    一.Objective-C内存管理的对象 1. 值类型:比如int.float.struct等基本数据类型. 值类型会被放入栈中,在内存中占有一块连续的内存空间,遵循先进后出的原则,故不会产生碎片. ...

  10. Java高级软件工程师面试考纲(转)

    如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...