재익님 안녕하세요.. ^^
결국... 문제 해결 방법은...
select 시 둘다 desc로 소팅하거나 asc로 소팅하는 방법이 있습니다.
결국 데이터를 변경을 해버렸네요...
메일링리스트를 뒤져봤는데.. 찾지는 못해서..
결국... 질문을 올려봤는데요..
제시된 방법중에... (저도 생각안해본 방법은 아니지만..)
create index시 역으로 참조하는 operator class를 만들어서...
create index kdkdkd3 on bbs using BTREE ( ref reverse_ops, step);
라고 만들면 될 것 같은데...
문제는 operator class를 만들지 못하겠다는거죠.. ㅠ.ㅠ
좀 더 찾아봐야겠습니다.
ㅠ.ㅠ
>>정재익 님께서 쓰시길<<
:: 윤한님 올만입니다.
::
:: 말씀하신대로 현재로서는 그렇게 소팅을 할 경우 절대로 index 를 사용하지 않습니다. 메일링 리스트
:: 를 한번 뒤져봐야겠지만 아직은 문제가 많다고 생각합니다. 오라클 처럼 hint 를 줄수도 없고, 할수 없
:: 을 것 같습니다. 그냥 그렇게 사용하지 않는 수 밖에... /./
:: 좋은 자료 찾기면 다시한번 올리도록 하겠습니다.
::
:: >>김윤한 님께서 쓰시길<<
::
:: ::
:: :: 인덱스 생성시
:: :: 하나의 필드는 DESC로 정렬하고 하나의 필드는 ASC로 정렬합니다.
:: :: 그러니까 이러한 쿼리를 주고 싶습니다.
:: :: SELECT * FROM bbs ORDER BY ref desc, step ASC LIMIT 12;
:: :: 이때 인덱스를 어떻게 생성해야 합니까?
:: :: 그냥 create index kdkdkd3 on bbs using BTREE ( ref, step);
:: :: 라고 할 경우는 explain으로 확인해 본 결과 절대 인덱스를 사용하지 않더군요.
:: :: (예전에 질문한 거였었음.. /_/;;;)
:: :: 이 경우 ref를 ASC로 정렬할 경우는 인덱스를 사용해서 굉장히 빠르더라구요..
:: :: 인덱스를 따로 따로 만든 경우도 사용하지 않습니다.
:: :: 단독으로 DESC정렬을 하는 경우는 역으로 사용해서 빠르더군요... ㅠ.ㅠ
:: :: 도대체 어쩌라는 것인지.. =_=;;;;;
:: :: 이걸 어떻게 하면 빠르게 동작하도록 만들 수 있을까요?
:: :: ops_class하고 관계가 있을까요?
:: :: 찾아봐도 이것과 관계된 얘기가 없어서...
:: :: 좀 더 찾아 보겠습ㅣ다.
:: ::
|