Postgres 읽기가 쓰기를 유발하는 이유: MVCC, 페이지 정리 및 힌트 비트
2024-12-25
이 글에서는 PostgreSQL에서 단순한 SELECT 쿼리가 데이터 쓰기를 유발하는 것처럼 보이는 역설적인 동작에 대해 자세히 설명합니다. 멀티버전 동시성 제어(MVCC) 메커니즘부터 시작하여 행 버전, 페이지, 튜플과 같은 개념을 설명합니다. 코드 예제를 통해 힌트 비트 업데이트와 페이지 정리가 읽기 작업으로 페이지가 수정되고 궁극적으로 디스크 쓰기로 이어지는 메커니즘을 분석합니다. 또한 HOT 업데이트 최적화 전략에 대해서도 설명하고 페이지 검사 도구를 사용하여 데이터가 페이지에 어떻게 저장되고 업데이트되는지 보여줍니다.
더 보기
개발
데이터베이스 성능