1.建表语句
CREATE TABLE `cc_register` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`age` int(11) NOT NULL,
`create_time` datetime(0) NOT NULL,
`update_time` datetime(0) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `name_age_time`(`name`, `age`, `create_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10051 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
2.索引包含了查询列和条件列的查询计划
3.查询所有列的查询计划
4.结论
可以看到虽然覆盖索引的possible_keys为NULL,但是key显示的索引,因为查询不满足最左原则,需要全表扫描,但是mysql发现查询满足覆盖索引的条件,所以会在覆盖索引上遍历查找,虽然不是索引的树形查找,但是在索引上遍历依然要比全表扫描快,所以依然会用到索引。