【发布时间】:2013-06-19 18:07:07
【问题描述】:
所以我有这个查询:
EXPLAIN SELECT SQL_CALC_FOUND_ROWS
u.userid,
u.firstname,
u.lastname,
u.job_title,
u.email,
u.org_id
FROM piltools.users u
WHERE
u.org_id = 'VX3'
AND (
u.firstname LIKE 'Chris%'
OR u.lastname LIKE 'Chris%'
OR CONCAT(u.firstname, ' ', u.lastname) LIKE 'Chris%'
OR u.email LIKE 'Chris%'
)
AND u.firstname !=''
AND u.lastname !=''
AND u.deleted = '0'
每个列都有一个索引,我为已删除的、org_id、lastname、firstname、job_title、email、userid 创建了一个自定义索引,特别是针对此查询,但是当我运行解释时它说:
id 1
select_type简单
表格 u
类型参考
possible_keys 电子邮件、名字、姓氏、org_id、已删除、自定义
key org_id
key_len 17
ref 常量
行 113967
额外使用 where
为什么它使用单独的 org_id 索引而不是我的 CUSTOM 索引,它具有所需的所有字段?
【问题讨论】: