[sql] 데이터베이스 비정규화 방법

데이터베이스 설계 시 성능 향상을 위해 비정규화(denormalization)를 고려할 수 있습니다. 비정규화는 정규화된 상태에서 중복 데이터를 추가하거나, 테이블을 병합하여 쿼리 성능을 최적화하는 과정입니다.

1. 중복 데이터 추가

중복 데이터를 추가함으로써 데이터 읽기 속도를 향상시킬 수 있습니다. 예를 들어, 고객 정보 테이블과 주문 내역 테이블이 각각 존재할 때, 고객 정보를 주문 내역 테이블에 중복으로 추가하여 조인 연산을 줄일 수 있습니다.

CREATE TABLE 주문내역 (
    주문번호 INT,
    고객명 VARCHAR(50),
    주문일시 DATETIME,
    상품명 VARCHAR(100),
    ...
)

2. 테이블 병합

정규화된 상태에서 성능 저하가 발생할 경우, 테이블을 병합하여 쿼리 성능을 향상시킬 수 있습니다. 예를 들어, 주문 정보와 주문 상세 정보 테이블을 병합하여 자주 사용되는 정보를 한 테이블에 모아 조회 성능을 향상시킬 수 있습니다.

CREATE TABLE 주문정보 (
    주문번호 INT,
    고객명 VARCHAR(50),
    주문일시 DATETIME,
    상품명 VARCHAR(100),
    수량 INT,
    가격 DECIMAL(10,2),
    ...
)

데이터베이스 비정규화는 성능 최적화를 위한 방법이지만, 중복 데이터 관리와 데이터 일관성 유지에 주의해야 합니다.

참고문헌: Mysql Tutorial