[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