我有几个查询,我为它们创建了 2 个单独的索引,我知道目前它并不需要使用它们,因为表不包含那么多行;但是,possible key
当我使用EXPLAIN
.
一个示例查询是:
SELECT
id,eventname,details,datestart,dateend,smallimage
FROM
`events`
WHERE
CAST(dateend AS DATE) >= CURDATE()
AND
(state='VIC' OR state = 'ALL')
AND
STATUS = 1
ORDER BY
datestart ASC;
备用查询只是在状态之前添加了另一个AND
子句,例如:
AND eventcat = 15
现在,我添加了以下两个索引:
KEY `NewIndex4` (`dateend`,`state`,`status`,`datestart`),
KEY `NewIndex5` (`dateend`,`eventcat`,`state`,`status`,`datestart`)
但是,MySQL 仅将以下索引显示为可能的键:
KEY `NewIndex1` (`state`,`status`,`frontpage`,`image`)
我的索引错了吗!?为什么这样做?