select A.wr_subject, A.wr_id, A.wr_comment, trim(substring(A.wr_datetime,3,9))
from 테이블 A inner join 테이블 B on A.wr_num=B.wr_num
and A.wr_id=B.wr_parent and A.wr_is_comment!=B.wr_is_comment
where (to_days(B.wr_datetime) >= (to_days(now()) - 30)) and B.mb_id = '아이디'
group by A.wr_parent
order by B.wr_id desc
일단 테이블 A,B는 동일 테이블입니다.
테이블 행의 갯수는 대략 60만개정도구요.
아무래도 조인문이다보니 60만개의 테이블 2개(맞나? -0-)를 불러와서 비교하는거라 그런지 시간이 많이 걸립니다. 대략 1.6초~1.7초정도 걸리는데 이걸 1초 이내로 줄이는게 목표입니다.
원래는 where문에 날짜조건이 없으면 1.8~1.9초정도 걸리는데 저 조건문을 넣으니까 0.1~0.2초정도 단축이 된거 같더라구요.
근데 제 생각에는 쿼리문을 보면
일단 테이블에서 전체행을 다 가져온다음에 비교를 시작하는거라
오래걸리는게 아닐까 싶습니다.
그래서 궁금한데 처음에 데이터를 가져올때 조건문으로 필터링이 된걸 가져와서 조인을 할 수는 없는건가요?
고수분들 도와주세요 ㅠㅠ;
|