实际例子分析面试过程中经常问到的联合索引,给定一个查询SQL和联合索引,问是否会走索引。
表结构:
CREATE TABLE person (
id int(2) NOT NULL,
address varchar(255) DEFAULT NULL,
age int(11) NOT NULL,
name varchar(255) DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE INDEX idx_person_01 (name, age)
)
ENGINE = MYISAM
AVG_ROW_LENGTH = 26
CHARACTER SET utf8
COLLATE utf8_general_ci;
问题一: 如果查询字段顺序调整:
EXPLAIN SELECT * FROM person WHERE age = 10 AND name ='张三';
问题二:如果查询字段只用到了age:
EXPLAIN SELECT * FROM person WHERE age = 10 ;