【mysql explain(转)】教程文章相关的互联网学习教程文章

MySQL 执行计划explain详解【图】

MySQL 执行计划explain详解 2015-08-10 13:56:27分类: MySQL explain命令是查看查询优化器如何决定执行查询的主要方法。这个功能有局限性,并不总会说出真相,但它的输出是可以获取的最好信息,值得花时间去了解,因为可以学习到查询是如何执行的。调用EXPLAIN在select之前添加explain,mysql会在查询上设置一个标记,当执行查询计划时,这个标记会使其返回关于执行计划中每一步的信息,而不是执行它。它会返回一行或多行信息,显...

mysql Explain 性能分析关键字

各列的含义如下:id: SELECT 查询的标识符. 每个 SELECT 都会自动分配一个唯一的标识符. select_type: SELECT 查询的类型. table: 查询的是哪个表 partitions: 匹配的分区 type: join 类型 possible_keys: 此次查询中可能选用的索引 key: 此次查询中确切使用到的索引. ref: 哪个字段或常数与 key 一起被使用 rows: 显示此查询一共扫描了多少行. 这个是一个估计值. filtered: 表示此查询条件所过滤的数据的百分比 extra: 额外的信息 ...

mysql explain详解【图】

1, 数据类型隐式转换 与 查看是否使用了索引 2,select_type select类型,它有以下几种值 2.1 simple 它表示简单的select,没有union和子查询 2.2 primary 最外面的select,在有子查询的语句中,最外面的select查询就是primary, 3 table 输出的行所用的表,这个参数显而易见,容易理解 4 type 连接类型。有多个参数,先从最佳类型到最差类型介绍 重要且困难 4.1 system 表仅有一行,这是const类型的特列,平时不会出现,这个也可...

MySQL查询优化之explain的深入解析

MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。最终目标是提交 SELECT 语句查找数据行,而不是排除数据行。优化器试图排除数据行的原因在于它排除数据行的速度越快,那么找到与条件匹配的数据行也就越快。如果能够首先进行最严格的测试,查询就可以执行地更快。EXPLAIN 的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 项 说明id MySQL Query Optimize...

MySQL索引优化、性能分析及explain的使用

1、like只有在数据列为字符串,且like不是以%开头时索引才会起效2、大于小于比较只有在数据列为整型时,索引才会起效3、要想使用or,又想让索引生效,只能将or条件中的每个列都分别加上索引 参考文献:explain的使用:http://database.51cto.com/art/201108/284783.htm http://www.jb51.net/article/50649.htm 索引与优化:http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html MySQL索引优化、性能分析及explain的使用...

mysql explain执行计划详解

8)、ref 如果是使用的常数等值查询,这里会显示const,如果是连接查询,被驱动表的执行计划这里会显示驱动表的关联字段,如果是条件使用了表达式或者函数,或者条件列发生了内部隐式转换,这里可能显示为func 9)、rows 这里是执行计划中估算的扫描行数,不是精确值 10)、extra 这个列可以显示的信息非常多,有几十种,常用的有 A:distinct:在select部分使用了distinc关键字 B:no tables used:不带from字句的查询或者Fro...

mySQL explain解释

8)、ref 如果是使用的常数等值查询,这里会显示const,如果是连接查询,被驱动表的执行计划这里会显示驱动表的关联字段,如果是条件使用了表达式或者函数,或者条件列发生了内部隐式转换,这里可能显示为func 9)、rows 这里是执行计划中估算的扫描行数,不是精确值 10)、extra 这个列可以显示的信息非常多,有几十种,常用的有A:distinct:在select部分使用了distinc关键字B:no tables used:不带from字句的查询或者From ...

mysql explain执行计划详解

8)、ref 如果是使用的常数等值查询,这里会显示const,如果是连接查询,被驱动表的执行计划这里会显示驱动表的关联字段,如果是条件使用了表达式或者函数,或者条件列发生了内部隐式转换,这里可能显示为func 9)、rows 这里是执行计划中估算的扫描行数,不是精确值 10)、extra 这个列可以显示的信息非常多,有几十种,常用的有 A:distinct:在select部分使用了distinc关键字 B:no tables used:不带from字句的查询或者Fro...

mysql explain用法【代码】

在日常工作中,我们会开启慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,这时我们常常用到explain这个命令来查看一个SQL语句的执行计划,查看该SQL语句有没有使用索引,有没有做全表扫描,并做相应的优化~The EXPLAIN statement provides information about how MySQL executes statements:When you precede a SELECT statement with the keyword EXPLAIN, MySQL displays information from the opt...

Mysql之表的操作&索引&explain&profile【代码】

=>rename table A to B 更改表名   =>alter table A rename to B 更改表   =>drop table A 删除表 mysql> show create database gtms;  #查看建库语句 +----------+---------------------------------------------------------------+ | Database | Create Database | +----------+---------------------------------------------------------------+ | gtms | CREAT...

mysql 性能分析及explain用法

语句去查看分析结果 如 explain select * from test1 where id=1; 会出现: id selecttype table type possible_keys key key_len ref rows extra各列其中, type=const表示通过索引一次就找到了, key=primary的话,表示使用了主键 type=all,表示为全表扫描, key=null表示没用到索引; type=ref,因为这时认为是多个匹配行,在联合查询中,一般为REFMYSQL中的组合索引假设表有id,key1,key2,key3,把三者形成一个组合索引,...

mysql 执行计划explain详解【代码】【图】

* from student s where s. classid = (select id from classes where classno=‘2017001‘);2.2 union / union resultexplain select * from student where id = 1 union select * from student where id = 2;2.3 dependent union/dependent subqueryexplain select * from student s where s.classid in (select id from classes where classno=‘2017001‘ union select id from classes where classno=‘2017002‘);2.4 derive...

MySQL查询语句分析 explain用法【代码】【图】

explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,在select语句前加上explain就可以了,如:explain select * from statuses_status where id=11; explain列的解释table:显示这一行的数据是关于哪张表的 type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和all possible_keys:显示可能应用在这张表...

MySQL性能分析及explain的使用

where key1=1 and key2=2 where key1=3 and key3=3 and key2=2 根据最左原则,这些都是可以使用索引的,如from test where key1=1 order by key3,用explain分析的话,只用到了normal_key索引,但只对where子句起作用,而后面的order by需要排序。 3.使用慢查询分析 在my.ini中: long_query_time=1 log-slow-queries=d:\mysql5\logs\mysqlslow.log 把超过1秒的记录在慢查询日志中 可以用mysqlsla来分析之。也可以在mysqlrepo...

MySQL explain语法

然后我往其中插入了100000条记录。 下面是订单的扩展表,仅向其中插入了一条记录,关联某笔订单。CREATE TABLE `t_order_ext` ( `order_id` int(10) NOT NULL COMMENT ‘订单ID‘, `user_type` int(11) NOT NULL DEFAULT ‘0‘ COMMENT ‘用户类型‘, `comment` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT ‘订单备注‘, KEY `order_id` (`order_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 先看一下第一种用法:...

EXPLAIN - 相关标签