通过 MySQL EXPLAIN 关键字获取信息?


我们首先创建一个表 -

mysql> create table DemoTable1541
   -> (
   -> EmployeeId int,
   -> EmployeeFirstName varchar(20) NOT NULL
   -> );
Query OK, 0 rows affected (0.94 sec)

以下是对列创建索引的查询 -

mysql> create index emp_name_index on DemoTable1541(EmployeeFirstName);
Query OK, 0 rows affected (0.75 sec)
Records: 0  Duplicates: 0  Warnings: 0

使用插入命令向表中插入一些记录 -

mysql> insert into DemoTable1541 values(1,'Robert');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1541 values(2,'Adam');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1541 values(3,'Mike');
Query OK, 1 row affected (0.14 sec)

使用 select 语句显示表中的所有记录 -

mysql> select * from DemoTable1541;

这将生成以下输出 -

+------------+-------------------+
| EmployeeId | EmployeeFirstName |
+------------+-------------------+
|          1 | Robert            |
|          2 | Adam              |
|          3 | Mike              |
+------------+-------------------+
3 rows in set (0.00 sec)

以下是使用 EXPLAIN 的查询 -

mysql> explain select * from DemoTable1541 where EmployeeFirstName='Mike';

这将生成以下输出 -

+----+-------------+---------------+------------+------+----------------+----------------+---------+-------+------+----------+-------+
| id | select_type | table         | partitions | type | possible_keys  | key            | key_len | ref   | rows | filtered | Extra |
+----+-------------+---------------+------------+------+----------------+----------------+---------+-------+------+----------+-------+
|  1 | SIMPLE      | DemoTable1541 | NULL       | ref  | emp_name_index | emp_name_index | 62      | const |    1 | 100.00   | NULL |
+----+-------------+---------------+------------+------+----------------+----------------+---------+-------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

更新日期:2019 年 12 月 12 日

128 次浏览

开启您的职业生涯

通过完成课程取得认证

开始学习
广告