MySQL手册版本 5.0.20-MySQL优化(二) (1)

7.2.1 EXPLAIN 语法(得到SELECT 的相关信息)

MySQL
EXPLAIN语句可以获得关于MySQL如何执行SELECT语句的信息,下面就为您介绍该语句的使用说明,供您参考学习。

EXPLAIN tbl_name

EXPLAIN tbl_mgm娱乐场,name
或:EXPLAIN [EXTENDED] SELECT select_options

或者:

MySQL
EXPLAIN语句可以用作DESCRIBE的一个同义词,或获得关于MySQL如何执行SELECT语句的信息:

EXPLAIN SELECT select_options

EXPLAIN tbl_name是DESCRIBE tbl_name或SHOW COLUMNS FROM
tbl_name的一个同义词。·        
如果在SELECT语句前放上关键词EXPLAIN,MySQL将解释它如何处理SELECT,提供有关表如何联接和联接的次序。

EXPLAIN 语句可以被当作 DESCRIBE
的同义词来用,也可以用来获取一个MySQL要执行的 SELECT 语句的相关信息。

借助于MySQL
EXPLAIN语句,可以知道什么时候必须为表加入索引以得到一个使用索引来寻找记录的更快的SELECT。如果由于使用不正确的索引出现了问题,应运行ANALYZE
TABLE更新表的统计例如关键字集的势),这样会影响优化器进行的选择。

EXPLAIN tbl_name 语法和 DESCRIBE tbl_name 或 SHOW COLUMNS FROM
tbl_name 一样。

还可以知道优化器是否以一个最佳次序联接表。为了强制优化器让一个SELECT语句按照表命名顺序的联接次序,语句应以STRAIGHT_JOIN而不只是SELECT开头。

当在一个 SELECT 语句前使用关键字 EXPLAIN 时,MYSQL会解释了即将如何运行该
SELECT 语句,它显示了表如何连接、连接的顺序等信息。

MySQL
EXPLAIN语句为用于SELECT语句中的每个表返回一行信息。表以它们在处理查询过程中将被MySQL读入的顺序被列出。MySQL用一遍扫描多次联接single-sweep
multi-join)的方式解决所有联接。这意味着MySQL从第一个表中读一行,然后找到在第二个表中的一个匹配行,然后在第3个表中等等。当所有的表处理完后,它输出选中的列并且返回表清单直到找到一个有更多的匹配行的表。从该表读入下一行并继续处理下一个表。

相关文章