问题:为啥explain 后type=all

最近在学习mysql 调优,学习explain执行计划,为了模拟出type=system或const,我创建了一张表test(id,name),id为主键,里面放了一条数据
执行

EXPLAIN SELECT * FROM (SELECT * FROM test WHERE id=1)t ;

结果是

id	select_type	table	partitions	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	SIMPLE	        test	\N	        ALL	PRIMARY	         \N	\N	\N	1	100.00	      Using where

问题原因

查看了下table,发现id是字符串类型,当字符串字段走索引的时候需要加引号,因此上面那个查询应该改成如下

EXPLAIN SELECT * FROM (SELECT * FROM test WHERE id="1")t ;
posted @ 2022-10-11 15:10  镇魂帆-张  阅读(133)  评论(0编辑  收藏  举报