数据库-联合索引

实际例子分析面试过程中经常问到的联合索引,给定一个查询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 ;

扫描二维码关注公众号,回复: 1434809 查看本文章



问题三:如果查询字段含有like:

EXPLAIN  SELECT * FROM person WHERE  name LIKE '张三%' AND age = 10 ;


EXPLAIN  SELECT * FROM person WHERE  name LIKE '%张三%' AND age = 10 ;



问题四:如果查询字段含有>或者<:

EXPLAIN  SELECT * FROM person WHERE  age > 10 AND name = '张三';


EXPLAIN  SELECT * FROM person WHERE  age > 10 AND name like '张三%';



问题五:查询条件中含有函数:

EXPLAIN  SELECT * FROM person WHERE  LEFT(name,2)='张三';





猜你喜欢

转载自blog.csdn.net/dxh0823/article/details/80485179