MYSQL的explain工具
它是mysql自代的一个工具,用它可以分析MYSQL是怎么样执行你的SQL语句的,它是在不真正执行SQL语句的时候,就知道执行的情况。这样利于我们去分析SQL语句。
调用方式为:explain+SQL语句。
如在我的环境中执行:explain select * from `ykttb_users` where id=1\G;
(\G的意思为格式化输出结果)会出现以下结果
*************************** 1. row***************************
id: 1
select_type: SIMPLE
table: ykttb_users
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: const
rows: 1
Extra: NULL
1 row in set (0.00 sec)
解释上面的结果:
id:查询的序列号
select_type:查询的类型;它有以几种方式
PRIMARY子查询中最外层查询
SUBQUERY:子查询内层第一个SELECT,结果不依赖于外部查询
DEPENDENTSUBQUERY:子查询内层第一个SELECT,依赖于外部查询
UNION:UNION语句中第二个SELECT开始后面所有SELECT.
SIMPLE
UNIONRESULT UNION 中合并结果。
table:查询的表名
type:扫描的方式。
ALL为全表扫描,尽量避。
system:表仅有一行(=系统表),这个是const联接类型的一个特例,
const表最多有一个匹配行。
possible_keys:可能用到有的索引有哪些
key:实际用到的索引有哪些
rows:可能得到多少记录
Extra:SQL语句的额外信息,比如排序方式等
另外还介绍一个命令,delimiter +符号,它是将MYSQL指定MYSQL命令的结束符,在写存储过程时很有用。
如delimiter $$ ,将MYSQL命令的结束符指定为$$