[sql] 과적재로 인한 워크로드 관리를 위한 데이터베이스 파티셔닝 방법은 무엇인가요?
-
Range Partitioning: 데이터를 지정된 범위에 따라 파티션으로 분할합니다. 날짜나 숫자 범위에 따라 데이터를 분산시키는 데 효과적입니다.
예시:
CREATE TABLE sales ( sale_date DATE, amount NUMBER ) PARTITION BY RANGE (sale_date) ( PARTITION sales_q1 VALUES LESS THAN (TO_DATE('2022-04-01', 'YYYY-MM-DD')), PARTITION sales_q2 VALUES LESS THAN (TO_DATE('2022-07-01', 'YYYY-MM-DD')), PARTITION sales_q3 VALUES LESS THAN (TO_DATE('2022-10-01', 'YYYY-MM-DD')), PARTITION sales_q4 VALUES LESS THAN (TO_DATE('2023-01-01', 'YYYY-MM-DD')) );
-
List Partitioning: 지정된 목록에 따라 데이터를 파티션으로 분할합니다. 데이터를 명시적 목록에 따라 분배할 때 유용합니다.
예시:
CREATE TABLE employees ( employee_id NUMBER, first_name VARCHAR2(50), last_name VARCHAR2(50), department_id NUMBER ) PARTITION BY LIST (department_id) ( PARTITION part_10 VALUES (10), PARTITION part_20 VALUES (20), PARTITION part_30 VALUES (30), PARTITION part_others VALUES (DEFAULT) );
-
Hash Partitioning: 해시 함수를 사용하여 데이터를 여러 파티션으로 분할합니다. 해시 값에 따라 데이터를 분배하여 균일한 분산을 유지합니다.
예시:
CREATE TABLE customer_data ( customer_id NUMBER, name VARCHAR2(100), address VARCHAR2(200), email VARCHAR2(100) ) PARTITION BY HASH (customer_id) PARTITIONS 8;
파티셔닝은 데이터 접근 및 조작 속도를 향상시키고, 유지보수를 간편화함으로써 과적재로 인한 워크로드 관리를 효과적으로 지원합니다.