10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 36.4 mb
PDF (A4)- 36.4 mb
PDF (RPM)- 35.7 mb
HTML下载(TGZ)- 9.5 mb
HTML下载(Zip)- 9.5 mb
HTML下载(RPM)- 8.2 mb
手册(TGZ)- 235.5 kb
手册(Zip)- 347.0 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

13.8.2 EXPLAIN语句

{解释|描述| desc}tbl_namecol_name|野生{解释|描述| desc} [explain_type) {explainable_stmt|用于连接connection_idexplain_type:{扩展的|分区| format =format_nameformat_name:{传统| json}explainable_stmt{SELECT语句| DELETE语句| INSERT语句| REPLACE语句| UPDATE语句}

描述而且解释语句是同义词。在实践中,描述关键字通常用于获取表结构的信息,而解释用于获取查询执行计划(即MySQL如何执行查询的解释)。

下面的讨论使用描述而且解释但MySQL解析器将它们视为完全的同义词。

获取表结构信息

描述提供关于表中列的信息:

mysql描述城市;+------------+----------+------+-----+---------+----------------+ | 字段默认零关键| | | | |类型多  | +------------+----------+------+-----+---------+----------------+ | | int Id (11) | | PRI零| | auto_increment | | | char(35) |没有名称  | | | | | 国家没有| char(3) | |大学| | | | |区char(20) |是| MUL | | | | |人口int (11) | | | 0  | | +------------+----------+------+-----+---------+----------------+

描述是一个捷径显示列.这些语句还显示视图的信息。的描述显示列提供有关输出列的详细信息。看到第13.7.5.5节,“SHOW COLUMNS语句”

默认情况下,描述显示关于表中所有列的信息。col_name,如果给出,则为表中列的名称。在本例中,该语句只显示指定列的信息。野生,如果给定,则为模式字符串。它可以包含SQL而且_通配符。在本例中,该语句仅显示名称与字符串匹配的列的输出。字符串不需要用引号括起来,除非它包含空格或其他特殊字符。

描述语句是为了兼容Oracle而提供的。

显示创建表显示表状态,显示指数语句还提供关于表的信息。看到第13.7.5节,“SHOW语句”

获取执行计划信息

解释statement提供了MySQL如何执行语句的信息:

  • 解释适用于选择删除插入取代,更新语句。

  • 解释与可解释语句一起使用时,MySQL会显示来自优化器的关于语句执行计划的信息。也就是说,MySQL解释了它将如何处理语句,包括关于表如何连接以及以何种顺序连接的信息。有关使用解释执行计划信息请参见第8.8.2节,“解释输出格式”

  • 解释为连接connection_id它不是一个可解释的语句,而是显示在命名连接中执行的语句的执行计划。看到第8.8.4节“获取命名连接的执行计划信息”

  • 选择语句,解释生成其他执行计划信息,可以使用显示警告.看到第8.8.3节“扩展的EXPLAIN输出格式”

    请注意

    在较老的MySQL版本中,扩展信息是使用解释扩展.该语法仍可用于向后兼容,但扩展输出现在是默认启用的,因此扩展关键字是多余的,已弃用。它的使用将导致一个警告,并且它将被删除解释MySQL 8.0中的语法。

  • 解释用于检查涉及分区表的查询。看到第22.3.5节“获取关于分区的信息”

    请注意

    在较老的MySQL版本中,分区信息是使用解释分区.该语法仍然为向后兼容性而被识别,但分区输出现在默认启用,因此分区关键字是多余的,已弃用。它的使用将导致一个警告,并且它将被删除解释MySQL 8.0中的语法。

  • 格式选项可用于选择输出格式。传统的以表格格式显示输出。如果没有,这是默认值格式选项存在。JSONformat以JSON格式显示信息。

解释要求执行解释语句所需的相同特权。此外,解释还需要显示视图任何已解释视图的特权。

在…的帮助下解释,您可以看到应该在什么地方向表添加索引,以便通过使用索引查找行来加快语句的执行速度。你也可以用解释检查优化器是否以最佳顺序连接表。中表的命名顺序对应的连接顺序,以提示优化器使用连接顺序选择语句,语句以选择STRAIGHT_JOIN而不仅仅是选择.(见第13.2.9节,“SELECT语句”.)

优化器跟踪有时可能提供与的信息相补充的信息解释.但是,优化器跟踪格式和内容可能在不同版本之间发生更改。详情请参见MySQL内部:跟踪优化器

如果您认为索引应该被使用,但却没有被使用,那么请运行分析表更新表统计信息,例如键的基数,这会影响优化器的选择。看到第13.7.2.1节,“ANALYZE TABLE语句”

请注意

MySQL工作台有一个可视化的解释功能,提供可视化的表示解释输出。看到教程:使用Explain提高查询性能