[sql] 데이터베이스 분할 및 파티셔닝 방법

데이터베이스는 성능을 향상시키고 유지보수를 용이하게 하기 위해 분할파티셔닝 기술을 사용할 수 있습니다.

데이터베이스 분할

데이터베이스 분할은 데이터를 여러 그룹으로 나누는 것을 말합니다. 이를 통해 데이터에 대한 접근성 및 관리가 용이해지며, 성능 향상을 기대할 수 있습니다.

수평 분할은 특정 열의 값에 따라 데이터를 분할하는 방식이며, 수직 분할은 테이블의 열을 기준으로 데이터를 분할하는 방식입니다.

수평 분할 예시

CREATE TABLE employee_part1 AS 
SELECT * FROM employee WHERE department = 'Sales';

CREATE TABLE employee_part2 AS 
SELECT * FROM employee WHERE department = 'Marketing';

수직 분할 예시

CREATE TABLE employee_info AS 
SELECT emp_id, emp_name, emp_dob FROM employee;

CREATE TABLE employee_salary AS 
SELECT emp_id, emp_salary FROM employee;

데이터베이스 파티셔닝

데이터베이스 파티셔닝은 테이블 또는 인덱스를 논리적 또는 물리적으로 분할하여 관리하는 기술입니다.

수평 파티셔닝은 테이블을 로우 수에 따라 분할하며, 수직 파티셔닝은 테이블의 열을 기준으로 분할합니다.

수평 파티셔닝 예시

CREATE TABLE orders_part1 PARTITION OF orders 
    FOR VALUES FROM (MINVALUE) TO (1000);

CREATE TABLE orders_part2 PARTITION OF orders 
    FOR VALUES FROM (1001) TO (MAXVALUE);

수직 파티셔닝 예시

CREATE TABLE employee_info 
  PARTITION BY COLUMN (emp_id)
  (
    PARTITION part1 VALUES (1, 2, 3),
    PARTITION part2 VALUES (4, 5, 6)
  );

데이터베이스 분할과 파티셔닝은 데이터베이스 관리 및 성능 최적화에 도움이 됩니다. 따라서, 데이터베이스 설계 단계에서 고려해야 하는 중요한 기술 중 하나입니다.

참고 자료: