21.3.3 联合索引未匹配最左列
当数据表中创建了联合索引,如果在查询数据时,查询条件不包含联合索引中最左边的列或者最左边列的开始部分,即不满足最左前缀匹配规则,那么MySQL不会使用索引。
mysql> EXPLAIN SELECT * FROM t_goods WHERE t_name = '牛仔裤' \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t_goods
partitions: NULL
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 14
filtered: 10.00
Extra: Using where
1 row in set, 1 warning (0.00 sec)
在t_goods数据表中,t_name字段是category_name_index索引中的第二个字段,按照t_name字段查询数据时MySQL并没有使用索引。