정규화란 DB를 설계하면서 중복을 없애는 과정이라고 설명했었다. 역정규화란 성능을 향상시키기 위해 정규화된 DB를 다시 중복을 허용하는 형태로 변경하는 과정을 뜻한다.
✅ 역정규화는 언제 하나요 ?
특별한 이유가 없는 한 정규화를 지켜서 DB 설계를 하라고 얘기했다. 이 때, 정규화로 인해 비효율적으로 SQL문을 실행시켜서 실제로 성능이 느려질 때가 있다. 정규화된 테이블 구조에서 SQL문 자체를 최대한 고쳐봐도 성능이 개선되지 않을 때가 있다. 이 때는 역정규화를 고려해보기도 한다.
역정규화는 매우 제한적으로 사용해야 한다. 그리고 데이터 중복으로 인해 실수로 데이터가 잘못 관리되는 현상(이상현상)이 발생하지 않도록 많은 노력을 기울여야 한다.