본문 바로가기

안녕하세요!

자격증 준비/SQLD

[ SQLD ] Row Migration / Row Chaining / Partitioning

 


 

로우 마이그레이션


 

로우 마이그레이션

데이터 블록에서 수정이 발생 하였을 때

수정된 데이터를 해당 블록에 저장하지 못하고

다른 블록에 있는 빈 공간을 찾아 저장하는 방식이다.

 

-----------------------------------

   

 

"이순신"을 "강강술래"으로 UPDATE 하였을 때

행의 길이가 증가하면서 저장 공간이 부족해진다.

이때 원래 정보를 기존 블록에 남겨두고

실제 데이터는 다른 블록에 저장하게 되는데,

데이터 조회 시 기존 블록에서 주소를 먼저 읽고 다른 블록을 찾아야 하므로

성능이 감소될 수밖에 없어진다.

 

로우 체이닝


 

로우 체이닝이란,

행 길이가 길어서 데이터 블록 하나에 데이터를 모두 저장하지 않고,

두 개 이상의 블록에 걸쳐서 하나의 로우를 저장하는 형태이다.

 

O O O O
O O O O
O O O O
O O O O

      입력할 데이터(16)

-----------------------------------

O O O
O O O
O O O

         블록A(9)

O O O
O O O
O    

         블록B(7)

 

이는 로우 마이그레이션과 달리 

애초에 저장 공간이 부족해서 발생한다.

예를 들어, 9K 데이터 블록에 16K 데이터가 들어가면,

9K + 7K로 나누어 저장하게 된다.

 

파티셔닝


 

파티셔닝

한 테이블에 많은 데이터가 저장되면

테이블을 아무리 쪼개도 성능이 저하될 것이다.

그러므로 논리적으로는 하나의 테이블이지만,

물리적으로는 여러 개의 테이블로 분리된 형태로 만들어 준다.

 

 


loading