MySQL中如何运用EXPLAIN命令
发布时间:2021-12-28 12:05:53 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要为大家展示了MySQL中如何使用EXPLAIN命令,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下MySQL中如何使用EXPLAIN命令这篇文章吧。 explain显示了mysql如何处理select语句以及连接表。 下面是explai
这篇文章主要为大家展示了“MySQL中如何使用EXPLAIN命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中如何使用EXPLAIN命令”这篇文章吧。 explain显示了mysql如何处理select语句以及连接表。 下面是explain命令的一个例子: C:Usersduansf>mysql -u root -p Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 2 Server version: 5.5.13 MySQL Community Server (GPL) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> use test Database changed mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | workinfo | +----------------+ 1 row in set (0.00 sec) mysql> explain select * from workinfoG *************************** 1. row *************************** id: 1 select_type: SIMPLE table: workinfo type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 1 Extra: 1 row in set (0.00 sec) mysql> 1、id SELECT识别符,这是SELECT查询序列号。这个不重要,查询序号即为sql语句执行的顺序 2、select_type select类型,它有以下几种值: simple:它表示简单的select,没有union和子查询 primary:最外面的select,在有子查询的语句中,最外面的select查询就是primary union:union语句的第二个及以后的子查询 dependent union:UNION中的第二个及以后的子查询语句,取决于外面的查询 union result:UNION的结果 subquery:子查询中的第一个select语句 dependent subquery:依赖于外查询的子查询中的第一个select derived:子查询衍生出来的表 materialized:物化子查询 uncacheable subquery:不能被缓存,需要重新评估的子查询 uncacheable union:union中第二个及以上的uncacheable subquery中需要重新评估的子查询 3、table 输出的行所用的表 4、type 连接类型 system:表仅有一行,这是const类型的特列,平时不会出现,这个也可以忽略不计 const:表最多有一个匹配行,const用于比较primary key 或者unique索引。因为只匹配一行数据,所以很快。记住一定是用到primary key或者unique,并且只检索出两条数据的情况下才会是const eq_ref:对于每个来自于前面的表的行组合,从该表中读取一行。这可能是最好的联接类型,除了const类型。它用在一个索引的所有部分被联接使用并且索引是UNIQUE或PRIMARY KEY"。eq_ref可以用于使用=比较带索引的列。 ref:对于每个来自于前面的表的行组合,所有有匹配索引值的行将从这张表中读取。如果联接只使用键的最左边的前缀,或如果键不是UNIQUE或PRIMARY KEY(换句话说,如果联接不能基于关键字选择单个行的话),则使用ref。如果使用的键仅仅匹配少量行,该联接类型是不错的。 5、possible_keys 提示使用哪个索引会在该表中找到行 6、keys 查询实际用到的索引 7、key_len 实际用到的索引长度 8、ref ref列显示使用哪个列或常数与key一起从表中选择行。 9、rows 显示执行查询的行数,,数值越大越不好,说明没有用好索引 10、Extra 查询语句的额外信息 以上是“MySQL中如何使用EXPLAIN命令”这篇文章的所有内容,感谢各位的阅读! ![]() (编辑:海南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐