The EXPLAIN statement can be used
either as a synonym for DESCRIBE
or as a way to obtain information about how MySQL executes a
SELECT statement:
EXPLAIN
is synonymous
with tbl_nameDESCRIBE
or
tbl_nameSHOW COLUMNS
FROM :
tbl_name
EXPLAIN tbl_name
When you precede a SELECT
statement with the keyword
EXPLAIN, MySQL displays
information from the optimizer about the query execution
plan. That is, MySQL explains how it would process the
SELECT, including information
about how tables are joined and in which order:
EXPLAIN [EXTENDED] SELECT select_options
This section describes the second use of
EXPLAIN for obtaining query
execution plan information. See also Section 12.7.2, “EXPLAIN Syntax”.
For a description of the DESCRIBE
and SHOW COLUMNS statements, see
Section 12.7.1, “DESCRIBE Syntax”, and Section 12.4.5.5, “SHOW COLUMNS Syntax”.
With the help of EXPLAIN, you can
see where you should add indexes to tables to get a faster
SELECT that uses indexes to find
rows. You can also use EXPLAIN to
check whether the optimizer joins the tables in an optimal
order. To give a hint to the optimizer to use a join order
corresponding to the order in which the tables are named in the
SELECT statement, begin the
statement with SELECT STRAIGHT_JOIN rather
than just SELECT. (See
Section 12.2.7, “SELECT Syntax”.)
If you have a problem with indexes not being used when you
believe that they should be, you should run
ANALYZE TABLE to update table
statistics such as cardinality of keys, that can affect the
choices the optimizer makes. See
Section 12.4.2.1, “ANALYZE TABLE Syntax”.

User Comments
Add your own comment.