在一个非常基本的设置中,我有一个包含一些字段的表:
firstname (VARCHAR)
lastname (VARCHAR)
country (INT)
email (VARCHAR)
Run Code Online (Sandbox Code Playgroud)
我在 Index 中创建了 2 个字段:
CREATE INDEX countr_email_idx ON person (country, email)
Run Code Online (Sandbox Code Playgroud)
这是学校的一个简单例子,因此不应假设该索引是否有任何用处。
现在,当我通过电子邮件字段查询简单的 Select 时,MySQL 文档指出,因为它不是索引的最左侧属性,所以无法使用它。possible_keys
当我使用以下命令运行查询时,这也反映在空值中EXPLAIN
:
EXPLAIN SELECT passenger_id, email
FROM passengerdetails
WHERE email LIKE 'bob%'
Run Code Online (Sandbox Code Playgroud)
这产生
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
1 | SIMPLE | passengerdetails | index | NULL | countr_email_idx | 225 | NULL | 36370 | Using where; …
Run Code Online (Sandbox Code Playgroud)