mysql 쿼리문 속도좀 줄이려고 합니다~~ > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

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 가 현제 자신의 아이디 이다.

이 정도가 되겠네요.

댓글 전체

흠... 간단하게 프로그램으로 생각 해보겠습니다.
wr_is_comment = 1 이 댓글이라는것을 아시지요? 단지 이것을 2로만 바꾼것이구요.

나의 글에 댓글을 단 데이터만 출력을 하고자 함 입니다.

2중 루프로 돌려 뽑는것 쉬운데 이걸 한큐에 끝내려니 어렵네요 ㅎㅎ
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 처리문 참고)
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT