파티션: 범위·목록·해시 분할, 파티션 프루닝, 파티션 단위 관리
파티션: 범위·목록·해시 분할, 파티션 프루닝, 파티션 단위 관리
수억 건짜리 주문 표에서 지난달 조회는 느리고, 3년 지난 데이터를 지우는 DELETE 는 몇 시간씩 걸립니다. 파티션은 큰 표를 키 값에 따라 여러 조각으로 나눠, 필요한 조각만 읽고 조각 단위로 지우게 해 줍니다. 이 레슨은 파티션의 세 가지 방식과 프루닝, 조각 단위 관리를 다룹니다.
1. 왜 배우는가
표가 커지면 두 가지 문제가 생깁니다. 특정 기간만 조회해도 표 전체를 훑을 수 있고, 오래된 데이터를 지우는 일이 너무 무겁습니다. 대용량 03 인덱스 튜닝에서 본 인덱스는 앞의 문제를 줄여 주지만, 뒤의 문제는 그대로입니다.
파티션은 한 표를 키 값에 따라 여러 물리 조각으로 나눕니다. 조각은 저장 위치만 다르고, SQL 은 그대로 한 표처럼 씁니다. 그래서 조건이 키에 걸리면 필요한 조각만 읽고, 오래된 조각은 통째로 비우거나 떼어 낼 수 있습니다.
이 레슨은 대용량 01 실행 계획과 중급 11 뷰를 안다고 보고 진행합니다.
주의H2 는 테이블 파티션을 지원하지 않습니다. 이 레슨의 DB별 파티션 DDL 과 관리 명령은 문법 검토만 했고, 계획에서 파티션을 보여 주는 그림은 모두 도식(H2 미지원, 실행 결과 아님)입니다. H2 로 실행한 것은 월별 표를 여러 개 만들고 UNION ALL 뷰로 묶은 설명용 흉내입니다. 실제 파티션이 아니라 원리를 건수로 보이기 위한 구조입니다.