mysql 쿼리문 속도 질문입니다.
본문
SELECT DISTINCT a.no, a.name, a.receive_mail, a.write_day, a.read_day, a.title, b.content FROM `zzMailingSend_List` a LEFT JOIN `zzMailingSend` b ON a.code = b.code ORDER BY a.no DESC
라는 쿼리문을 완성을 했는데.. 틀린 문법은 아니고.. 작동은 잘 되는데..
유독 저 쿼리문만 반응이 느리네요.
phpMyAdmin 에서도 작동이 되는것은 확인했지만.. 어쩌다 한번뿐이고.. 대부분은 불러오는 중만 계속 뜨네요..
덕분에 쿼리 실행도 계속 느려지고 있고요.
저거보다 훨신 길고 복잡한 쿼리도 얼마 안걸리는데.. 저 쿼리만 유독 오래 걸리는 이유가 있을까요?
답변 2
데이터의 양의 많을 수록 속도는 느려집니다.
메일관련 테이블로 보이므로 데이터는 무지하게 많을 거라 예상되네요.
검색날짜로 조건을 줘서 검색하시길 추천하며...
여의치 않다면 index처리를 생각하는 것도 좋을 것 같네요.
==========================================================
select a.*, b.content from
(select no, code, name, receive_mail, write_day, read_day, title from `zzMailingSend_List` group by no, code, name, receive_mail, write_day, read_day, title) a
LEFT JOIN `zzMailingSend` b ON a.code = b.code
Order by a.no
테스트는 안해봤지만 미리 중복제거 한 후 조인하는 것도 방법도 있겠지만 별반 차이는 없을 것 같네요.
==========================================================
윗분 말씀대로 index를 걸어보세요.
zzMailingSend_List 테이블에 code와 no
zzMailingSend 테이블은 code만 걸면 괜찮아질듯 보입니다.