问题:为啥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 ;