mysql 쿼리문 속도좀 줄이려고 합니다~~ 정보
mysql 쿼리문 속도좀 줄이려고 합니다~~
본문
select b.* from (select wr_is_comment, mb_id, wr_id from {$g4['write_prefix']}job where wr_is_comment = '0' and mb_id = '{$member[mb_id]}') a join (select * from {$g4['write_prefix']}job where wr_is_comment = '2') b on a.wr_id = b.wr_parent
제가 생각 해도 무식한 방법이네요.
mysql 쪽으로는 많이 약해서 ㅎㅎ;
일단 작동은 정상으로 하는데 limit 10건 결과값 출력이 13초 걸리네요.(phpmyadmin의 sql기능 이용하면 속도 나와요 ^^)
(참조하는게 많으니 당연할지도 모르겠네요.)
위 쿼리문과 다른 방법 없을까요??
위 쿼리문의 조건
1. 조회 하고자 하는 데이터는 wr_is_comment = '2' 이다.
2.1번에 합당하는 데이터중 wr_parent 가 다른 데이터의 wr_id와 같으며, 1번의 wr_parent와 wr_id가 같은 데이터의 mb_id 가 현제 자신의 아이디 이다.
이 정도가 되겠네요.
댓글 전체
2번 조건 설명은 간단히 알아먹을 수가 없네요 ㅎㅎ
두 조건을 따로 쿼리헤서 php코드로 비교하는 소스를 만들어서 속도 차이를 비교해보시죠
두 조건을 따로 쿼리헤서 php코드로 비교하는 소스를 만들어서 속도 차이를 비교해보시죠

흠... 간단하게 프로그램으로 생각 해보겠습니다.
wr_is_comment = 1 이 댓글이라는것을 아시지요? 단지 이것을 2로만 바꾼것이구요.
나의 글에 댓글을 단 데이터만 출력을 하고자 함 입니다.
2중 루프로 돌려 뽑는것 쉬운데 이걸 한큐에 끝내려니 어렵네요 ㅎㅎ
2중으로 하면 쉬운데 ㅠ.ㅠ;
wr_is_comment = 1 이 댓글이라는것을 아시지요? 단지 이것을 2로만 바꾼것이구요.
나의 글에 댓글을 단 데이터만 출력을 하고자 함 입니다.
2중 루프로 돌려 뽑는것 쉬운데 이걸 한큐에 끝내려니 어렵네요 ㅎㅎ
2중으로 하면 쉬운데 ㅠ.ㅠ;

ps. 댓글과는 다르게 wr_is_comment = 2 인설트 발생시 따로 원글에는 따로 카운트 업데이트가 발생 되지 않습니다.

select * from {$g4['write_prefix']}job as a where a.wr_is_comment = '2' and a.wr_parent = if((select count(wr_id) from {$g4['write_prefix']}job where mb_id = '{$member[mb_id]}' and wr_id = a.wr_parent) > 0, a.wr_parent, 'fail') order by a.wr_last desc limit 0, 10
ㅠ.ㅠ; 이렇게 하니까 속도가 빠르고 정확하게 나오네요.
역시 스택오버플로우는 진리, 개발자들의 성격 이네요~ (mysql if 처리문 참고)
ㅠ.ㅠ; 이렇게 하니까 속도가 빠르고 정확하게 나오네요.
역시 스택오버플로우는 진리, 개발자들의 성격 이네요~ (mysql if 처리문 참고)

결국은 오늘도 자문자답.... ㅠ.ㅠ;;;;
균이님 답변 감사합니다. ㅎ.ㅎ;
균이님 답변 감사합니다. ㅎ.ㅎ;