merge table 과 partition table
merge 테이블은 구간적용없이 여러개의 테이블을 합쳐서 사용하는 개념입니다.
여러개의 테이블에 각각 insert된 data들을 합쳐서 볼 때 사용합니다.
어느 테이블 위치에 들어갈지를 DB가 자동으로 결정하지 않습니다.
수동으로 특정 위치에 insert 하여야 합니다.
view, union all 개념이기 때문에,
예를 들어 월단위 데이터를 1~4월 나눠서 네개 테이블로 구성하고,
구성된 네개의 테이블을 merge 테이블로 구성했을때,
1월 데이터가 들어오면 1월 테이블에 insert하지 않고 merge table에 했을때
어디에 들어갈 지 알 수 없습니다.(옵션을 통해 처음, 마지막 테이블에 들어가게 할 수 있습니다)
partiton 테이블은 구간 및 특정값 지정을 통해 데이터는 분산시키는 개념입니다.
하나의 partition 테이블에 insert를 했을 경우 알아서 위치를 지정해주며,
데이터를 셀렉할 때도 - 위예시를 통해 알아보면 -
1월 데이터를 셀렉트 하면 내부적으로 1월 파티션만 조회합니다.
결과적으로
partition 테이블은 데이터를 넣을때 자동으로 원하는 위치에 넣어주고,
꺼낼때 대략적인 위치를 파악하여 scanning 범위를 좁혀주나,
merge 테이블은 데이터를 원하는 위치에 넣기 힘들고,
꺼낼때는 - indexing 제외 - scanning 범위를 줄일 수 없는 테이블입니다.…