{解释|描述| desc}tbl_name[col_name|野生{解释|描述| desc} [explain_type) {explainable_stmt|用于连接connection_id}explain_type:{扩展的|分区| format =format_name}format_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节,“解释输出格式”.当
解释
与为连接
它不是一个可解释的语句,而是显示在命名连接中执行的语句的执行计划。看到第8.8.4节“获取命名连接的执行计划信息”.connection_id
为
选择
语句,解释
生成其他执行计划信息,可以使用显示警告
.看到第8.8.3节“扩展的EXPLAIN输出格式”.解释
用于检查涉及分区表的查询。看到第22.3.5节“获取关于分区的信息”.的
格式
选项可用于选择输出格式。传统的
以表格格式显示输出。如果没有,这是默认值格式
选项存在。JSON
format以JSON格式显示信息。
解释
要求执行解释语句所需的相同特权。此外,解释
还需要显示视图
任何已解释视图的特权。
在…的帮助下解释
,您可以看到应该在什么地方向表添加索引,以便通过使用索引查找行来加快语句的执行速度。你也可以用解释
检查优化器是否以最佳顺序连接表。中表的命名顺序对应的连接顺序,以提示优化器使用连接顺序选择
语句,语句以选择STRAIGHT_JOIN
而不仅仅是选择
.(见第13.2.9节,“SELECT语句”.)
优化器跟踪有时可能提供与的信息相补充的信息解释
.但是,优化器跟踪格式和内容可能在不同版本之间发生更改。详情请参见MySQL内部:跟踪优化器.
如果您认为索引应该被使用,但却没有被使用,那么请运行分析表
更新表统计信息,例如键的基数,这会影响优化器的选择。看到第13.7.2.1节,“ANALYZE TABLE语句”.
MySQL工作台有一个可视化的解释功能,提供可视化的表示解释
输出。看到教程:使用Explain提高查询性能.