该EXPLAIN语句提供有关MySQL如何执行语句的信息:
EXPLAIN提供有SELECT,DELETE,INSERT,REPLACE,和UPDATE语句。- 当
EXPLAIN与可解释的语句一起使用时,MySQL将显示来自优化器的有关语句执行计划的信息。也就是说,MySQL解释了它将如何处理该语句,包括有关如何连接表以及以何种顺序连接表的信息。有关EXPLAIN用于获取执行计划信息的信息,请参见第8.8.2节“ EXPLAIN输出格式”。 - 当
EXPLAIN与 而不是可解释的语句一起使用时,它将显示在命名连接中执行的语句的执行计划。请参见第8.8.4节“获取命名连接的执行计划信息”。FOR CONNECTION *connection_id* - 对于
SELECT语句,EXPLAIN产生可以使用来显示的其他执行计划信息SHOW WARNINGS。请参见 第8.8.3节“扩展的EXPLAIN输出格式”。 EXPLAIN对于检查涉及分区表的查询很有用。请参见 第24.3.5节“获取有关分区的信息”。- 该
FORMAT选项可用于选择输出格式。TRADITIONAL以表格格式显示输出。如果不FORMAT存在任何选项,则为默认设置 。JSONformat以JSON格式显示信息。
在的帮助下EXPLAIN,您可以看到应该在表中添加索引的位置,以便通过使用索引查找行来使语句更快地执行。您还可以 EXPLAIN用来检查优化器是否以最佳顺序联接表。要提示优化器使用连接顺序,该连接顺序与SELECT语句中表的命名顺序相对应,请以 SELECT STRAIGHT_JOIN而不是just开头SELECT。(请参见 第13.2.10节“ SELECT语句”。)但是,STRAIGHT_JOIN由于它禁用了半联接转换,因此 可能会阻止使用索引。看 第8.2.2.1节“使用半联接转换优化IN和EXISTS子查询谓词”。
优化程序跟踪有时可能提供与补充的信息EXPLAIN。但是,优化程序的跟踪格式和内容可能会在版本之间发生变化。有关详细信息,请参见 MySQL内部:跟踪优化器。
如果您在认为应该使用索引时遇到问题,请运行ANALYZE TABLE以更新表统计信息,例如键的基数,这可能会影响优化器的选择。请参见 第13.7.3.1节“ ANALYZE TABLE语句”。
笔记
EXPLAIN也可以用于获取有关表中列的信息。 是和的 同义词。有关更多信息,请参见第13.8.1节“ DESCRIBE语句”和 第13.7.7.5节“ SHOW COLUMNS语句”。 EXPLAIN *tbl_name*DESCRIBE *tbl_name*``SHOW COLUMNS FROM *tbl_name*
最后修改时间:2021-04-21 13:35:40
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




