처음 글을 적는 초보입니다.
의문점이 생겨 이렇게 질문드립니다.
그냥 간단하게
A 테이블에 13억개 데이터
B 테이블에 1억개 데이터
C 테이블에 1억게 데이터
각각 3개의 테이블에 위와같은 데이터 갯수가 존재한다고 가정을 했습니다.
A,B,C 테이블 모두 구조가 동일, 즉 컬럼과 인덱스 모두 동일하다는 가정하에
동일하게 100만개의 데이터를 select 할 예정입니다.
간단한 샘플 예제
select name form A
where A.id = '01'
and A.no = '2017'
and A.ins_date between '2017-01-01' and '2017-01-03'
조회 결과 13억개 중 100만개 조회
select name form B
where B.id = '01'
and B.no = '2017'
and B.ins_date between '2017-01-01' and '2017-01-03' -------------1억개 중 50만개 조회
UNION
select name form C
where C.id = '01'
and C.no = '2017'
and C.ins_date between '2017-01-01' and '2017-01-03' -------------1억개 중 50만개 조회
조회 결과 50만개 + 50만개= 100만개 조회
하나의 통짜 테이블에서 인덱스로만 조회를 했을때 결과와
2개의 테이블에서 각각 동일한 인덱스를 조회하여 유니온을 한 경우와 결과 속도는 어는것이 더 빠른가요
테스트는 실제 운영과 비슷한 결과에서 테스트가 필요하여 (운영에는 A테이블에 약 13억건 정도가 존재...) 비교 테스트가
힘든 상황이므로 고수님들의 경험과 지식으로 답변 부탁드립니다..
Comment 1
-
처리짱
2017.01.23 16:07
단순히 UNION 연산이 없는 쪽이 빠를거 같습니다.
실행계획을 보는게 제일 맞게죠..
근데.. 어떤 액션을 하길래 100만개씩 조회할 일이 생기나요?