2. DBMS이야기/01. PostgreSQL

PostgreSQL 내부 아키텍처에 따른 성능 지연 이슈?

알 수 없는 사용자 2014. 5. 13. 10:19

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, 박용훈