21.3 无法使用索引的场景
在数据表中即使创建了索引,有时MySQL也无法使用数据表中的索引来查询数据。本节将简单介绍MySQL中无法使用索引的场景。
21.3.1 以通配符开始的LIKE语句
当使用以通配符开始的LIKE语句查询数据时,MySQL不会使用索引。
mysql> EXPLAIN SELECT * FROM t_goods WHERE t_category LIKE '%T%' \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: 11.11
Extra: Using where
1 row in set, 1 warning (0.00 sec)
MySQL并未使用t_category字段上的索引查询数据。读者可对比21.2.9节的示例。