4.1을 사용하다 5.1로 업그레이드 했습니다.
그런데 4.1까지 제대로 인덱스를 타던놈이 이상해졌습니다.
cash 테이블에는 date 에 인덱스가 걸려있고 member 테이블의 no는 pk 일때
다음과 같이 쿼리를 던지면
SELECT
CASH.price
MEMBER.user_id
FROM
case AS CASE,
member AS MEMBER
WHERE
MEMBER.no = CASH.member_no
ORDER BY
CASH.date
LIMIT 10
당연히 CASH.date 인덱스를 타야하는데 이놈이 CASE를 풀스캔하고있습니다. (4.1에선 당연히 탔었구요)
그래서 case AS CASE USE INDEX(date) 로 달리라 했는데도 말을 안듣네요. (4.1에선 거의 USE INDEX를 따라줬거든요)
일단 WHERE 절에 CASE.date > 0 이라는 더미조건을 주어 인덱스를 타게했는데(range 타입으로)
4.1까지는 index 타입으로 바로 찝어왔거든요. 더미절없이는 5.1에서는 possible_keys 로도 안뜨고요.
이거 5.1은 아직 사용하지 말라는것일까요?
아니면 5.1 의 심오한 뜻이 있는것인지 궁금합니다.
0.x에 튀어나와야할게 한세월이네요..
|