mysql 잘 하시는분 조언좀 부탁 드립니다. > 그누4 질문답변

그누4 질문답변

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

mysql 잘 하시는분 조언좀 부탁 드립니다. 정보

mysql 잘 하시는분 조언좀 부탁 드립니다.

본문

제가 mysql에 약하다 보니.........
짜논것이.... 엄청 느리네요~ ㅠ.ㅠ;;;;;;


select * from {$tmp_write_table} a left join pay_log b on a.mb_id = b.pay_id WHERE (a.ad like '{$division} %' or b.pay_board like CONCAT('%', a.wr_id ,', %')) and b.pay_end_time > '{$g4['time_ymdhis']}' GROUP BY a.wr_id HAVING COUNT(a.wr_id) order by {$rand_code} limit 0, $rows


다음과 같은 쿼리문과 같은 동작을 하면서 더 빠른 쿼리 구조가 있을까요?


ps. 다시 봐도 막노동의 기억이 새록새록.... ㅎㅎ;;;;
ps2. ...mysql은... 아무리... 해도.... 안느네요 ㅠ.ㅠ;

댓글 전체

a.mb_id는  키가 설정되어있겠죠
b.pay_id도 키가 설정되어있을것같고.
b.pay_id, b.pay_end_time은  인덱스가 걸려있나요?
이 세가지 정도만 설정이 되어있어도 속도는 빨라질것 같습니다

그리고 다음의 like 문에서 앞쪽 '%'는 꼭 필요한것이 아니라면 빼는것이 속도가 빠를것입니다.
b.pay_board like CONCAT('%', a.wr_id ,', %')
pay_id는 중복된 데이터가 존재 가능하여 키설정이 안되구요
말씀 하신 b.pay_id, b.pay_end_time를 인덱스에 추가했는데 속도는 비슷하네요 ㅎㅎ
b.pay_board like CONCAT('%', a.wr_id ,', %') 이부분은 변경하면 일부 데이터 인식을 할수 없습니다 ㅠ.ㅠ;;;;
흠.... 결국은 쿼리문은 참조 필드 추가를 해서 필요한 데이터만 불러오게 하여 수정 하였습니다.


select mb_id, company_name, end, wr_subject, type, location from {$tmp_write_table} a inner join pay_log b on a.mb_id = b.pay_id WHERE (a.ad like '{$division} %' or b.pay_board like CONCAT('%', a.wr_id ,', %')) and b.pay_end_time > '{$g4['time_ymdhis']}' GROUP BY a.wr_id HAVING COUNT(a.wr_id) order by {$rand_code} limit 0, $rows
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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