개발자 끄적끄적
정규화, 반정규화, 클리스터링 본문
<정규화(Normalization)>
- 정규화는 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며
데이터를 분해하는 과정이다
- 정규화는 데이터의 중복을 제거하고 데이터 모델의 독립성을 확보하기 위한 방법이다
- 정규화는 테이블을 분해해서 데이터 중복을 제거하기 때문에 데이터 모델의 유연성을 높인다
- 정규화를 수행하면 비즈니스에 변화가 발생하여도 데이터 모델의 변경을 최소할 수 있다
<반정규화(De-Normalization)>
- 데이터베이스의 성능 향상을 위하여, 데이터 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 방법이다
- 반정규화는 조회(SELECT) 속도를 향상하지만, 데이터 모델의 유연성은 낮아진다
<반정규화를 수행하는 경우>
- 정규화에 충실하면 종속성, 활용성은 향상되지만 수행 속도가 느려지는 경우
- 다량의 범위를 자주 처리해야 하는 경우
- 특정 범위의 데이터만 자주 처리하는 경우
- 요약/집계 정보가 자주 요구되는 경우
<클러스터링(Clustering)>
- 클러스터링 인덱스라는 것은 인덱스 정보를 저장할 때 물리적으로 정렬해서 저장하는 방법이다
- 조회 시에 인접 블록을 연속적으로 읽기 때문에 성능이 향상된다
'MySQL' 카테고리의 다른 글
트랜잭션, 순위 함수, order by (0) | 2023.03.08 |
---|---|
도메인, 주식별자 특징, 정규화, PL/SQL, 속성의 종류 (0) | 2023.03.08 |
분산 데이터, 엔터티 종류 (0) | 2023.03.08 |