DB & SQL
[PostgreSQL] Visibility Map과 checksum
akasha.park
2025. 5. 20. 08:24
PostgreSQL의 relfilenode_vm 파일은 테이블 또는 인덱스의 Visibility Map (VM)을 저장하는 파일입니다.
Visibility Map : 특정 테이블의 페이지가 모든 튜플이 유효(dead tuple이 없는)한지 여부를 추적하는 비트맵
Visibility Map은 VACUUM과 Index-Only Scan의 성능을 크게 향상시킵니다.
페이지에 있는 모든 튜플이 다시 사용 가능하거나 삭제되지 않은 경우 해당 페이지를 "All Visible"로 표시합니다.
모든 튜플이 유효한 페이지는 VACUUM 시 무시하여 작업 시간을 단축합니다.
테이블 데이터를 읽지 않고 인덱스에서만 결과를 반환할 수 있는지 확인하는 데 사용됩니다.
기본 데이터 디렉토리 ($PGDATA) 내부의 각 테이블 또는 인덱스에 대해 생성됩니다.
PostgreSQL의 데이터 파일에 대한 데이터 무결성을 보장하기 위해 설정 파일 (postgresql.conf)에서 data_checksums 를 활성화해야 합니다.
체크섬 설정은 초기 클러스터를 생성할 때만 설정 가능
initdb -D /var/lib/postgresql/data --data-checksums