Mega Code Archive

 
Categories / MySQL / Command Mysql
 

Understand the EXPLAIN statement

mysql> mysql> mysql> CREATE TABLE Manufacturers     -> (     ->     ManfID CHAR(8)NOT NULL PRIMARY KEY,     ->     ManfName VARCHAR(30) NOT NULL     -> )     -> ENGINE=INNODB; Query OK, 0 rows affected (0.01 sec) mysql> mysql> mysql> INSERT INTO Manufacturers VALUES     -> ('abc123', 'ABC Manufacturing'),     -> ('def456', 'DEF Inc.'),     -> ('ghi789', 'GHI Corporation'),     -> ('jkl123', 'JKL Limited'),     -> ('mno456', 'MNO Company'); Query OK, 5 rows affected (0.00 sec) Records: 5  Duplicates: 0  Warnings: 0 mysql> mysql> CREATE TABLE Parts     -> (     ->     PartID SMALLINT NOT NULL PRIMARY KEY,     ->     PartName VARCHAR(30) NOT NULL,     ->     ManfID CHAR(8) NOT NULL     -> )     -> ENGINE=INNODB; Query OK, 0 rows affected (0.00 sec) mysql> mysql> mysql> INSERT INTO Parts VALUES     -> (101, 'DVD burner', 'abc123'),     -> (102, 'CD drive', 'jkl123'),     -> (103, '80-GB hard disk', 'mno456'),     -> (104, 'Mini-tower', 'ghi789'),     -> (105, 'Power supply', 'def456'),     -> (106, 'LCD monitor', 'mno456'),     -> (107, 'Zip drive', 'ghi789'),     -> (108, 'Floppy drive', 'jkl123'),     -> (109, 'Network adapter', 'def456'),     -> (110, 'Network hub', 'jkl123'),     -> (111, 'Router', 'mno456'),     -> (112, 'Sound card', 'ghi789'),     -> (113, 'Standard keyboard', 'mno456'),     -> (114, 'PS/2 mouse', 'jkl123'),     -> (115, '56-K modem', 'ghi789'),     -> (116, 'Display adapter', 'mno456'),     -> (117, 'IDE controller', 'def456'); Query OK, 17 rows affected (0.00 sec) Records: 17  Duplicates: 0  Warnings: 0 mysql> mysql> mysql> SELECT PartName, ManfName     -> FROM Parts AS p, Manufacturers as m     -> WHERE p.ManfID = m.ManfID     -> ORDER BY PartName; +-------------------+-------------------+ | PartName          | ManfName          | +-------------------+-------------------+ | 56-K modem        | GHI Corporation   | | 80-GB hard disk   | MNO Company       | | CD drive          | JKL Limited       | | Display adapter   | MNO Company       | | DVD burner        | ABC Manufacturing | | Floppy drive      | JKL Limited       | | IDE controller    | DEF Inc.          | | LCD monitor       | MNO Company       | | Mini-tower        | GHI Corporation   | | Network adapter   | DEF Inc.          | | Network hub       | JKL Limited       | | Power supply      | DEF Inc.          | | PS/2 mouse        | JKL Limited       | | Router            | MNO Company       | | Sound card        | GHI Corporation   | | Standard keyboard | MNO Company       | | Zip drive         | GHI Corporation   | +-------------------+-------------------+ 17 rows in set (0.00 sec) mysql> mysql> mysql> EXPLAIN SELECT PartName, ManfName     -> FROM Parts AS p, Manufacturers as m     -> WHERE p.ManfID = m.ManfID     -> ORDER BY PartName; +----+-------------+-------+------+---------------+------+---------+------+------+---------------------------------+ | id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra                           | +----+-------------+-------+------+---------------+------+---------+------+------+---------------------------------+ |  1 | SIMPLE      | p     | ALL  | NULL          | NULL | NULL    | NULL |   17 | Using temporary; Using filesort | |  1 | SIMPLE      | m     | ALL  | PRIMARY       | NULL | NULL    | NULL |    5 | Using where; Using join buffer  | +----+-------------+-------+------+---------------+------+---------+------+------+---------------------------------+ 2 rows in set (0.00 sec) mysql> mysql> drop table Parts; Query OK, 0 rows affected (0.00 sec) mysql> drop table Manufacturers; Query OK, 0 rows affected (0.00 sec) mysql>