MySQL 中的 explain 命令可以帮助开发者对查询语句的执行优化进行诊断。
EXPLAIN SELECT *FROM usersWHERE age >18;
执行完上述语句后,可以得到如下的结果:
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+-------------+-------+------+---------------+------+---------+------+------+-------------+| 1 | SIMPLE | users | ALL | NULL | NULL | NULL | NULL | 1 | Using where |+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
Explain 的输出结果中,包含了以下内容:
id
:表示 SELECT 查询在查询中的编号select_type
:表示 SELECT 查询的类型table
:表示查询的表名type
:表示查询时使用的索引类型possible_keys
:表示查询时可能使用的索引key
:表示实际选择使用的索引key_len
:表示使用的索引的长度ref
:表示使用索引的关联列rows
:表示查询返回的行数Extra
:包含查询的一些补充信息通过 analyze table 命令可以分析表,获得表的统计信息。
ANALYZE TABLE users;
执行 analyze table 命令可以使得 MySQL 在分析查询语句的时候更加准确,进而帮助开发者优化查询性能。