안녕하세요? DB 질문 좀 드릴게요! 0 0 1,173

by 하루한수놀자 table [2016.09.22 11:24:25]


a 라는 테이블에 

현재 총 record 수는 68개 입니다. 

 

그런데, 이걸 쿼리로 돌려보면

explain 에서 해당 테이블 풀스캔 했을때 rows 수가 686으로 나오는데 ㅠㅠㅠ

이거 왜 이런건가요 ㅠㅠ

사용 DB는 마리아 DB 입니다.

 

--------------------------------------------------------------------------------------

SELECT
    TB_RVAS_MAST.VACCT_NO,
    finMember. NAME,
    finMember.phone,
    campaign. NAME AS campaign_name,
    accountCore. NAME AS account_name,
    max(TB_RVAS_LIST.ENTRY_DATE) AS last_use,
    min(TB_RVAS_LIST.ENTRY_DATE) AS first_use,
    CASE TB_RVAS_MAST.STAT_CD
WHEN 0 THEN
    '미사용'
WHEN 1 THEN
    '사용'
WHEN 2 THEN
    '폐기'
END AS STATUS
FROM TB_RVAS_MAST LEFT OUTER JOIN fin19.determinator 
ON CUST_CD = determinator_idx
AND virtual_account_type = 'DT0402'
LEFT OUTER JOIN kyo4726.donation_vpa_account ON donation_vpa_account.vpa_account_idx = TB_RVAS_MAST.vpa_account_idx
AND virtual_account_type = 'DT0401'
LEFT OUTER JOIN kyo4726.finMember ON (
    determinator.pid = finMember.pid
    AND determinator.mem_type = finMember.mem_type
)
OR (
    donation_vpa_account.pid = finMember.pid
    AND donation_vpa_account.mem_type = finMember.mem_type
)
LEFT OUTER JOIN fin19.campaign USING (campaign_idx)
LEFT OUTER JOIN fin19.accountCore ON donation_vpa_account.acnt_code = accountCore. CODE
LEFT OUTER JOIN TB_RVAS_LIST ON TB_RVAS_MAST.BANK_CD = TB_RVAS_LIST.BANK_CD
AND TB_RVAS_MAST.ORG_CD = TB_RVAS_LIST.ORG_CD
AND TB_RVAS_MAST.VACCT_NO = TB_RVAS_LIST.VACCT_NO
WHERE TB_RVAS_MAST.STAT_CD = 0
GROUP BY
    TB_RVAS_MAST.vpa_account_idx;

 

그리고 위와 같은 쿼리가 있는데.

TB_RVAS_MAST 테이블에 데이터를 3만건 정도 추가해서 저걸 실행하니 5분이상 걸리더군요..ㅠㅠ

쿼리 튜닝밖에 답이 없을까요??

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입