[sql] 반정규화를 위한 성능 향상 기법

관계형 데이터베이스 정규화는 중복을 제거하고 데이터 일관성을 유지하는 데 도움이 됩니다. 그러나 대량의 데이터 처리 및 복잡한 쿼리의 성능을 향상시키는 측면에서는 제한적일 수 있습니다. 이때 반정규화를 적용하여 성능을 향상시킬 수 있습니다.

반정규화란?

반정규화는 정규화된 테이블을 중복이 발생하더라도 의도적으로 중복을 허용하는 과정입니다. 주로 읽기 성능을 향상시키는 데 사용됩니다.

반정규화를 위한 기법

  1. 테이블 통합
    • 자주 함께 사용되는 테이블을 하나로 통합하여 조인 연산을 줄입니다.
      CREATE TABLE combined_table AS
      SELECT t1.column1, t1.column2, t2.column3
      FROM table1 t1
      JOIN table2 t2 ON t1.id = t2.id;
      
  2. 컬럼 추가
    • 자주 사용되는 조인 조건으로 사용되는 컬럼을 다른 테이블에 추가하여 조인 연산을 최적화 합니다.
      ALTER TABLE table_name ADD column_name datatype;
      
  3. 인덱스 추가
    • 반정규화된 테이블에 인덱스를 추가하여 조회 성능을 향상시킵니다.
      CREATE INDEX index_name ON table_name (column_name);
      

반정규화 주의사항

반정규화는 성능 최적화를 위한 강력한 도구이지만, 신중하게 고려해야 합니다. 최적의 성능과 데이터 일관성을 동시에 유지하기 위해 반정규화를 적용할 때는 전략적인 판단이 필요합니다.

참고 자료