Mysql

DB 블락 구조와 이력관리의 위험성

정보 집합 2020. 3. 3. 14:21
반응형

블락은 데이터 베이스 가장 작은 단위인데 레코드가 들어가는 저장소이다.

디폴트로 8000바이트 정도 되는데 오라클디폴트 설정

 

블락에는 PCTFREE 와 PCTUSED 가있는데 

 

PCTFREE는 블락에서 여유 공간 크기 설정인데  이여유공간은 update시 블럭이 나뉘어지는것을 방지하기위함이다. /// 예) VARCHAR같은경우 가변적으로 공간을 갖기 때문에 update하다가 블락을 넘어설수있다 그럴경우에는 체인이 발생한다고하는데 레코드 자체를 새로운 블락으로 넘겨버린다.

 

PCTUSED는 블락에서 여유공간이 너무 커졌을경우 새로운데이터를 넣어라 하는조건이다.

 

 

이력을 같은 테이블에 저장시 이사람 저사람 저장이 되게된다 그러다 보면 최악의 상황에 1블락 1레코드의 상황이 발생한다 10개의 레코드를 불러오기위해 10개의 블락을 불러와야하는데 이렇게 될경우 이력 조회시 속도가 지옥급이다.

 

이럴경우에는 파티션 테이블을 사용하라는데 사용법은 잘 모름

 

 

2. 파티션 테이블의 장점
1) 개선된 가용성 
    - 파티션은 독립적으로 관리된다. 
    - Backup and Restore를 파티션별로 작업할 수 있다. 
    - 같은 테이블에서 Unavailable한 파티션은 다른 파티션에 영향을 주지 않는다. 
2) 관리의 용이성 
    - 사용자가 지정한 값으로 파티션이 가능하다. 
    - 테이블스페이스간에 파티션 이동이 가능하다. 
    - 파티션 레벨에서 Select, Delete, Update가 가능하다. 
3) 개선된 성능 
    - 데이터를 액세스할 때 액세스하는 범위를 줄여 퍼포먼스 향상을 가져올 수 있다. 
    - RAC(Real Application Clusters) 환경에서 인스턴스간 Block Contention을 감소시킨다.

 

 

 

 

3. 파티션 테이블 사용시 주의할 점
1) 관리적인 관점 
    - 하나의 테이블을 세분화하여 관리하기 때문에 보다 세심한 관리가 요구된다. 
    - 파티션을 잘 못 구성 또는 관리하여 IU(Index Unusable)에 빠지는 것을 주의해야 한다. 
2) 사용하는 관점 
    - 파티션 키로 나누어져 있는 테이블에 파티션 키를 조건으로 주지 않아 전체 파티션을 액세스하지
      않도록 주의해야 한다.

 

 

 

반응형