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
ここで、次の2つのインデックスを追加しました。
KEY `NewIndex4` (`dateend`,`state`,`status`,`datestart`),
KEY `NewIndex5` (`dateend`,`eventcat`,`state`,`status`,`datestart`)
ただし、MySQLは、可能なキーとして以下のインデックスのみを表示します。
KEY `NewIndex1` (`state`,`status`,`frontpage`,`image`)
私のインデックスは間違っていますか!?なぜこれを行うのですか?