文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  使用 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 语句”