ORACLE과 비교하여 내용을 확인하시면 PostgreSQL의 내부 구조를 좀 더 이해하기 쉬울 겁니다.
1. PostgreSQL Object관리
- Object와 파일이 1:1 구조라 할 수 있어 이해하기 쉬운 구조
- 하나의 디렉토리에 여러개의 파일 I/O가 발생되어 처리지연이 심해질 수 있는 구조
- 따라서 I/O성능이 상용제품에 비해 하드웨어 의존도가 높은 구조임
2. 추기형 아키텍처 채택
- 데이터의 UPDATE/ DELETE 할 때 이전에 데이터를 남겨두고 새로운 데이터를 끝에 추가하는 구조
(참고로 상용제품의 경우 추기형 구조를 채택하고 있는 제품은 없음, ORACLE은 스냅샷형 구조)
- 추기형 구조의 단점은 데이터의 변경이 빈번할 경우 File Size가 커져 심각한 성능 저하의 원인이 될 수 있음.
3. 아키텍처에 따른 문제 해소 방법
- 이런 문제 해소를 위해 VACCUM을 통해 이전 데이터의 영역 (UPDATE/ DELETE된 영역)을 재사용 할 수 있도록 해준다.
- VACCUM 작업 진행중에는 LOCK 및 성능 지연의 문제도 발생시키므로 작업상 주의가 필요합니다.
PostgreSQL의 내부 아키텍처는 데이터의 빈번한 변경/ 대량의 데이터가 발생되는 시스템에는 일부 불리한 구조일 수 있으나, 상용제품에 비해 유리한 점도 있으니 DBMS를 선택함에 있어서 이런 점들이 고려되야 할 것으로 보입니다.
by, 박용훈
'2. DBMS이야기 > 01. PostgreSQL' 카테고리의 다른 글
PPAS DB Full 백업 스크립트 작성 및 관리 방법 (0) | 2014.05.23 |
---|---|
[Admin] 1.Architecture : Data Cluster (0) | 2014.05.22 |
[Admin] 1.Architecture : Instance (0) | 2014.05.21 |
PostgreSQL (PPAS) PLAN 및 실행계획 보기 [2] (0) | 2014.05.02 |
PostgreSQL (PPAS) PLAN 및 실행계획 보기 [1] (1) | 2014.04.22 |