쿼리문제 다시 올려봅니다

쿼리문제 다시 올려봅니다

QA

쿼리문제 다시 올려봅니다

본문

안녕하세요?

오늘 오전에 쿼리문제 질문을했었는데요.

원인을 찾아보니

아래 쿼리에서 시간이 상당히 소요되고 있습니다.

어떻게 수정해야 쿼리시간을 줄일 수 있을까요?

 


select * from nss_sikdan_ok where od_id in(
  select od_id from nss_order od 
  join nss_cart ct on od.on_uid=ct.on_uid 
  where ct.ct_status in('배송','배송완료')  
 ) and (DATE_FORMAT(today_end_date,'%Y-%m-%d')='2017-05-05') and today_end='1' 
 limit 0,1
 

이 질문에 댓글 쓰기 :

답변 2

서브쿼리에 날짜 정보가 따로 없다면 서브쿼리에서 얻어지는 데이터를 1줄만 얻도록 하시고

만약 있다면 밖에 있는 and 조건을 서브쿼리 안으로 가져와 처리하시는게 좋을거 같습니다.

결론적으로 얻게 되는 1줄을 위해 너무 많은 검색을 하게 되는 구조네요.

이런류의 질문을 하실때는

테이블에 포함된 필드와 적어도 1줄 이상의 데이터를 보여주시면서 질문을 하셔야

답변 얻기가 쉽습니다.

nss_sikdan_ok 라는 테이블이 영카트에 있던가요?

in 안쪽의 쿼리도 돌고 밖에 쿼리도 돌아서 문제인거 같은데 식단 테이블이랑 주문이나카트 부분에 연결되는

필드가 있으면 조인문으로 전체를 잡으시거나

아니면 in 안쪽의 쿼리를 먼저 돌려서 in 안에 들어갈 값을 만든후에 식단 쿼리문을 다시 돌리는게 좋을 것 같아 보이긴 하네요  

답변을 작성하시기 전에 로그인 해주세요.
전체 17
QA 내용 검색

회원로그인

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