MySql中explain之后,type字段和Extra字段中的index-区别
2013-01-23 14:14
393 查看
一个查询语句经过explain之后,type字段可能会出现index,Extra中可能会出现using index。
那么二者有什么区别呢?他们是迥然不同的。
type中的index,仅仅是说,查询类型index,表示本次查询仅仅扫描索引树,没有其他读取操作。
Extra中的using index,意思是说,查询使用到了“覆盖索引”。关于覆盖索引,看这里
-----------------------------------------------------------------
表fa的id字段上有主键索引。无其他索引。
看表结构:
那么二者有什么区别呢?他们是迥然不同的。
type中的index,仅仅是说,查询类型index,表示本次查询仅仅扫描索引树,没有其他读取操作。
Extra中的using index,意思是说,查询使用到了“覆盖索引”。关于覆盖索引,看这里
-----------------------------------------------------------------
表fa的id字段上有主键索引。无其他索引。
看表结构:
mysql> show create table fa; +-------+--------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------------------------------------------------------------------------------------+ | fa | CREATE TABLE `fa` ( `id` int(11) NOT NULL, `name` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+--------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)看查询:
mysql> explain select * from fa; +----+-------------+-------+------+---------------+------+---------+------+------+-------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+------+---------+------+------+-------+ | 1 | SIMPLE | fa | ALL | NULL | NULL | NULL | NULL | 3 | | +----+-------------+-------+------+---------------+------+---------+------+------+-------+ 1 row in set (0.00 sec) mysql> explain select id from fa; +----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+ | 1 | SIMPLE | fa | index | NULL | PRIMARY | 4 | NULL | 3 | Using index | +----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+ 1 row in set (0.00 sec)第二个查询中,type中是index,仅仅扫描了索引。并且在Extra中出现了using index,意思是用到了覆盖索引。
相关文章推荐
- MySQL执行计划extra中的using index 和 using where using index 的区别
- MySQL之explain 的type列 & Extra列
- MySQL执行计划extra中的using index 和 using where using index 的区别
- mysql explain type 和extra 列的含义
- MySQL中explain执行计划中额外信息字段(Extra)详解
- MySQL之explain 的type列 & Extra列
- MySQL之explain 的type列 & Extra列
- 【EXPLAIN】“type”字段详解之MySQL官方文档说明
- MySQL笔记-MySQL支持的字段类型(dataType)
- MySQL explain type详解
- Mysql #1214 - The used table type doesn't support FULLTEXT index错误原因
- 查询表中一个字段用逗号分隔的结果集,sql server 和 mysql的写法区别
- MySQL中KEY与INDEX的区别
- mysql中的字段 TEXT类型区别、用于存储比较大文本字段
- MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什么区别?各适用于什么场合?
- mysql中key 、primary key 、unique key 与index区别
- 【MySql】解读EXPLAIN执行计划中的key_len 字段大小的计算规则
- MySql使用Index关键字为字段时创建表不成功
- mysql中key 、primary key 、unique key 与index区别
- MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什么区别?各适用于什么场合?