안녕하세요?
mysql에서 outer join를 이용할때 속도개선에 대해 의견을 구합니다.
CUST 테이블에는 고객정보가 있고, SELL 테이블에는 판매한 내역이 있습니다.
여기서 판매내역이 있는 고객정보와 판매내역이 없는 고객정보를 한꺼번에 불러오고자 하는데요, 관련 쿼리는 아래와 같습니다.
select A.*, B.* from CUST as A left outer join (select * from SELL where BalMonth='00') as B
on A.enterno=B.enterno
(참고로 SELL테이블의 BalMonth필드속성은 Not Null로서 반드시 값을 포함하고 있고, 고객별로 BalMonth='00'를 포함하는 레코드가 반드시 하나 존재합니다.)
문제는 위의 쿼리문을 ACCESS(ADO이용)에서는 성능이 괞찮은데요, Mysql에서는 너~무 느리게 불러드립니다. (버전: mysql4.1.7, zeos(6.1.5), delphi5). 판매내역(SELL테이블)에는 20만건 정도 있는데요. enterno(고객번호) 와 Balmonth에 인덱스를 주었습니다.
개선할 방법이 없을까요?
|