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 都无效