2009-09-02 3 views
31

대량의 데이터 (로그)를 조각난 PostgreSQL 테이블 (일일 테이블)에 저장하려고합니다. 디스크의 일부 공간을 절약하기 위해 그 중 일부를 압축하고 싶지만 일반적인 방식으로 쿼리 할 수있는 기능을 잃고 싶지는 않습니다.PostgreSQL은 테이블 (조각)의 투명한 압축을 지원합니까?

PostgreSQL은 이러한 투명한 압축을 지원합니까? 그리고 어디서 더 자세하게 읽을 수 있습니까? 나는 그런 특징을위한 잘 알려진 마법의 이름이 있어야한다고 생각한다.

답변

37

예, PostgreSQL은 특정 크기를 초과하면 자동으로이 작업을 수행합니다. 전체 테이블 수준이 아닌 각 개별 데이터 값에서 압축이 적용됩니다. 매우 좁은 10 억 개의 행이 있으면 압축되지 않을 것임을 의미합니다. 또는 각각에 작은 값만있는 열이 많으면 압축되지 않습니다. manual에서이 계획에 대한 세부 정보.

전체 테이블 수준에서 필요하면 해결할 테이블에 대해 TABLESPACE를 만들고 압축 된 파일 시스템을 가리켜 야합니다. 파일 시스템이 여전히 fsync()와 표준 POSIX 의미를 따르는 한, 이것은 완전히 안전해야합니다. manual에서 이에 대한 세부 정보.

1

큰 데이터 세트에 대한 도움이 필요할 수도 있지만 특별히 요구되지 않은 것은 PostgreSQL이 테이블 상속을 지원하므로 날짜 범위와 같이 데이터를 파티션 할 수 있습니다. 아니면 다른 논리.