select_type:表示的查询类型
type
表示存储引擎查询数据时采用的方式。通过他可以判断是全表扫描还是基于索引的部分扫描。常用属性值如下,从上至下效率依次增强。
possible_keys
表示查询时能够使用到的索引。注意,并不一定会真正使用,显示的是索引名称;
key
表示查询时真正使用到的索引,显示的是索引名称;
rows
mysql查询优化器会根据统计信息,估算sql 查询到结果需要扫描多少行记录。原则上rows是越少效率越高,可以直观的了解到SQL 效率的高低;
key_len
表示查询使用索引的字节数量。可以判断是否全部使用了组合索引;
key_len的计算规则
类型 | 计算规则 | |
---|---|---|
字符串类型 | 字符串长度和字符集有关:latin=1、gbk=2、utf8=3、utf8mb4=4 | |
char(n) | n * 字符集长度 | |
varchar(n) | n * 字符集长度 + 2 | |
数值类型 | ||
TINYINT | 1 个字节 | |
SMALLINT | 2 个字节 | |
MEDIUMINT | 3 个字节 | |
INT、FLOAT | 4 个字节 | |
BIGINT、DOUBLE | 8 个字节 | |
时间类型 | ||
DATA | 3 个字节 | |
TIMESTAMP | 4 个字节 | |
DATATIME | 8 个字节 | |
字段属性 | ||
NULL | 1 个字节,如果一个字段设置了NOT NULL,则没有此项 | |
例如: | 表的字符集为utf8mb4,where条件字段的类型是varchar(64),则key_len = 258 | key_len=4*64+2 |
Extra
表示很多的额外信息,各种操作会在Extra提示相关信息。常见如下: