數據庫-聯合索引

實際例子分析面試過程中經常問到的聯合索引,給定一個查詢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 ;



問題三:如果查詢字段含有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)='張三';





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章