mysql 索引

innodb引擎:數據結構

 索引(Index)是幫助MySQL高效獲取數據的數據結構。咱們能夠簡單理解爲:快速查找排好序的一種數據結構測試

explain:spa

possible_key:可能用到的索引
key:用到的索引blog

 

 

無索引:索引

#無索引
EXPLAIN SELECT * FROM a WHERE id like "%3";
#無索引
EXPLAIN SELECT * FROM a WHERE id like "%3%";rem

 

#有索引innodb

#最左前綴原則 有索引
EXPLAIN SELECT * FROM a WHERE id like "3%";class

 

#or 有索引im

EXPLAIN SELECT * FROM a WHERE `name` in ('測試_7','測試_8','測試_9','測試_10','測試_11','測試_12''測試_13','測試_14','測試_15','測試_16','測試_17','測試_18');數據

 

#in 有索引

EXPLAIN SELECT * FROM a WHERE `name` = '測試_7'or name='測試_8'or name='測試_9'or name='測試_10'or name='測試_11'or name='測試_12'or name='測試_13'or name='測試_14'or name='測試_15'or name='測試_16'or name='測試_17'or name='測試_18';

 

 

 

 

#複合索引 MySQL組合索引「最左前綴」的結果
ALTER TABLE jinxudong ADD INDEX name_remark (name(10),remark(255));

desc jinxudong;
#索引有效
EXPLAIN SELECT * FROM jinxudong WHERE `name`='a' AND remark ='a';
#索引有效
EXPLAIN SELECT * FROM jinxudong WHERE `name`='a';
#索引失效
EXPLAIN SELECT * FROM jinxudong WHERE `remark`='a';
#有索引 由於有a 最左邊原則
EXPLAIN SELECT * FROM jinxudong WHERE `remark`='a' AND name='a';

# 舉例:給 a b c 創建組合索引 則 a有效 abc有效 ab有效 bc無效 b c 都無效

相關文章
相關標籤/搜索