2 개의 별도 인덱스를 작성한 몇 가지 쿼리가 있습니다. 테이블에 많은 행이 포함되어 있지 않기 때문에 실제로는 사용할 필요가 없습니다. 그러나 나는 EXPLAIN
을 사용할 때 possible key
으로 표시되지 않습니다.가능한 키로 인덱스가 표시되지 않습니다.
예 쿼리는 다음과 같습니다 이제, 나는 다음과 같은 두 개의 인덱스를 추가 한
AND eventcat = 15
:
이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
절을 추가
KEY `NewIndex4` (`dateend`,`state`,`status`,`datestart`),
KEY `NewIndex5` (`dateend`,`eventcat`,`state`,`status`,`datestart`)
그러나 MySQL에서는 아래 색인 만 표시합니다. 키 :
KEY `NewIndex1` (`state`,`status`,`frontpage`,`image`)
내 색인이 잘못되었습니다!? 왜 이렇게합니까?
감사합니다. 불행히도 우리는 시간을 지켜야합니다. 다른 옵션은 두 개의 필드를 생성하는 것인데, 하나는 'DATE'로, 다른 하나는 DATETIME으로 생성하는 것입니다. – Brett
필드가 DATETIME이면 데이터 유형을 변경할 필요가 없습니다. 나는 내 대답을 편집 할 것이다. – Tom
좋아, 편집을 마쳤습니다. – Tom