Documentation Home
MySQL 8.0 参考手册  / 第8章优化  / 8.8 了解查询执行计划  /  8.8.1 使用 EXPLAIN 优化查询

8.8.1 使用 EXPLAIN 优化查询

EXPLAIN语句提供了有关 MySQL 如何执行语句的信息:

在 的帮助下EXPLAIN,您可以看到应该在何处向表添加索引,以便通过使用索引查找行来更快地执行语句。您还可以使用它 EXPLAIN来检查优化器是否以最佳顺序连接表。要提示优化器使用与表在语句中的命名顺序相对应的连接顺序,请 以而不是仅以.SELECT开始语句。(请参阅 第 13.2.10 节,“SELECT 语句”。)但是, 可能会阻止使用索引,因为它禁用了半连接转换。看 SELECT STRAIGHT_JOINSELECTSTRAIGHT_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_nameDESCRIBE tbl_nameSHOW COLUMNS FROM tbl_name