文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  使用 EXPLAIN 优化查询

10.8.1 使用 EXPLAIN 优化查询

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

EXPLAIN 的帮助下,您可以看到应该在哪些表中添加索引,以便语句更快地执行,通过使用索引查找行。您还可以使用 EXPLAIN 检查优化器是否以最佳顺序联接表。为了提示优化器使用与 SELECT 语句中表名的顺序相对应的联接顺序,请以 SELECT STRAIGHT_JOIN 而不是 SELECT 开头。 (请参见 第 15.2.13 节,“SELECT 语句”。)但是,STRAIGHT_JOIN 可能会阻止使用索引,因为它会禁用半连接变换。请参见 使用半连接变换优化 IN 和 EXISTS 子查询谓词

优化器跟踪有时会提供补充 EXPLAIN 的信息。但是,优化器跟踪格式和内容可能会在不同版本之间发生变化。有关详细信息,请参见 MySQL 内部:跟踪优化器

如果您遇到索引没有在您认为应该使用时使用的问题,请运行 ANALYZE TABLE 以更新表统计信息,例如键的基数,这些信息会影响优化器做出的选择。请参见 第 15.7.3.1 节,“ANALYZE TABLE 语句”

注意

EXPLAIN 也可用于获取有关表中列的信息。 EXPLAIN tbl_name 等同于 DESCRIBE tbl_nameSHOW COLUMNS FROM tbl_name。有关更多信息,请参见 第 15.8.1 节,“DESCRIBE 语句”第 15.7.7.6 节,“SHOW COLUMNS 语句”