윤한님 좋은 질문과 의견 감사드립니다. 개인적으로는 그렇게 할일이 없어서 별로 생각않고 지내고 있다가 이번 윤한님의 질문을 보고 테스트를 해 봤습니다. 그런데 역시 되지 않는군요. 말씀하신대로 operator 를 다시 만들수 있다면 당연히 해결이 되겠지요. 그리고 개인적으로는 당연히 되리라고 생각하고 있었습니다. 메뉴얼에 보면 desc sorting 시 index 를 어떻게 생성할 것인가하는 문제에 대한 답변이 있는데 그곳에는 분명히 그냥 일반 index 를 역으로 이용한다고 되어 있기 때문이지요. 그런데 둘을 짬봉할 경우에 동작하지 않으리라는 것에 대해서는 생각을 못한 것 같습니다. 나름대로 해법을 찾도록 노력해 보겠습니다.
>>김윤한 님께서 쓰시길<<
::
:: 재익님 안녕하세요.. ^^
:: 결국... 문제 해결 방법은...
:: 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하고 관계가 있을까요?
:: :: :: 찾아봐도 이것과 관계된 얘기가 없어서...
:: :: :: 좀 더 찾아 보겠습ㅣ다.
:: :: ::
|