Vacuum 3

PostgreSQL - Vacuum의 A to the Z

1. Intro PostgreSQL에서 Vacuum은 DB의 성능을 높이는 부분에 있어 매우 중요한 기능입니다. 또한 Vacuum은 MVCC를 구현하기위해 PostgreSQL에만 있는 개념이기에 그 차이점에 더 주목해야합니다. 우리는 Vacuum의 단어에서 짐작할 수 있듯이 DB를 ‘청소’를 한다는 의미와 일맥상통합니다. 더러워진 공간을 청소하여 새로운 공간을 만드는 것입니다. 한마디로 Vacuum은 디스크에서 불필요한 공간을 정리하여 용량을 성능을 높이는 작업을 말합니다. Vacuum에 대해 자세히 알기전에, DB의 MVCC개념을 먼저 이해해야 합니다. ​ ​ ​ 2.MVCC의 중요성 DB에 많은 사용자들이 접근한다고 하였을 때, 사용자들은 각각 데이터를 변경하거나 조회를 합니다. 이때 많은 작업들이 ..

Vacuum이해와 사용법

PostgreSQL에서 Vacuum을 이해하기 위해서는 Dead Tuple존재의미를 알아야 하며 Dead Tuple은 어떻게 해서 생기게 된 것인지 알아야 한다. PostgreSQL에는 여러 좋은 기능들이 많지만 Dead Tuple의 존재는 가장 아픈 곳이기도 하다. 아픈 곳을 Vacuum이라는 기능으로 최적화하며 고쳐 나가는 것이 중요하다. Vacuum을 잘 활용 하여 수집된 통계 정보로 최적의 쿼리 플랜을 유도 할 수도 있다. 이번 장에서는 Vacuum의 생겨난 배경부터 최적화까지 설명하면서 Vacuum을 좀더 쉽게 이해하고 관리방안을 찾도록 하는데 목적을 두고 있다. ​ [PostgreSQL에서 Vacuum 생겨난 배경] ​PostgreSQL에서 Dead Tuple이 생겨난 배경을 설명하기 위해서는..

PostgreSQL의 Advanced Feature(Table Inheritance)의 효율적인 사용 방법

서론 [Powerful Advanced Feature : Table Inheritance] PostgreSQL에는 강력한 Table Inheritance 기능은 객체지향 DB의 특징으로 테이블 간에 상속 관계를 설정하는 기능을 말합니다. 이를 통해 한 테이블(상위 테이블)의 스키마와 데이터를 다른 테이블(하위 테이블)에서 재사용할 수 있게 됩니다. 즉, 상위 테이블의 모든 열과 인덱스가 하위 테이블에서도 그대로 사용되며, 상속 관계를 설정함으로써 데이터 모델링과 관리에 유용한 기능을 제공합니다. 여기서는 이 Table Inheritance기능을 어떻게 사용하는지 알아보고, 이를 활용하여 데이터를 효율적으로 관리하는 방안과 대용량 데이터를 효율적 저장하는 방안을 알아보겠습니다. 본론 [Table Inher..