t_board 라는 테이블에
create index t_board_idx on t_board(orders DESC, sub);
라고 인덱스를 주었습니다.
일단 orders 를 DESC로 한 이유는 저장시 속도는 훨씬
느리지만..
인덱스 힌트를 줄때 index_asc 보다 index_desc 가 약. 3~4초 정도
느리더군요....
위와 같은 상태에서 페이징을 했는데요..
SELECT
rnum,
idx, b_idx, cate, orders, sub, subject
FROM (
SELECT
/*+index(t_board t_board_idx)*/
ROWNUM as rnum,
idx, b_idx, cate, orders, sub, subject
FROM
t_board
WHERE orders >0
)
WHERE
rnum BETWEEN 1 AND 10
백만건 조금 더 넘게 들어가 있는데요.
테스트 해 본 결과 한 6초 정도가 걸리는 군요....
원래 5초 정도 걸리는게 정상인지?.
인덱스를 잘못 걸었거나?.
쿼리를 잘못 생성한 것인지 궁금합니다..
예전에 rownum을 이용하는 것은 전체 글을 전부 소팅 한 후에
글을 자르는 형식이기 때문에 느리다는 얘기를 들었던 것
같은데요..
어떻게 다르게 하는 방법이 또 있나요?.
|