높은 동시성을 허용하려면PostgreSQL용도Multiversion 동시성 제어 (MVCC) 줄을 저장합니다. 하지만,MVCC젠 토토 쿼리를위한 일부 단점이 있습니다. 특히 젠 토토에는 테이블에 새 버전의 행이 추가되어야합니다.
젠 토토의 오버 헤드를 줄이는 데 도움이됩니다.PostgreSQL힙 전용 튜플 (이라는 최적화가 있습니다.hot). 이 최적화는 다음과 같이 가능합니다.
젠 토토는 표현식 및 부분 색인을 포함하여 테이블의 인덱스에서 참조 된 열을 수정하지 않습니다.
젠 토토 된 행의 기존 행이 포함 된 페이지에 충분한 여유 공간이 있습니다.
이 경우 힙 전용 튜플은 두 가지 최적화를 제공합니다.
젠 토토 된 행을 나타내는 데 새 인덱스 항목이 필요하지 않습니다.
기존 버전의 젠 토토 된 행 버전은 정상 작동 중에를 포함하여 완전히 제거 할 수 있습니다.select
s,주기적인 진공 작업이 필요하지 않고. (인덱스가 참조하지 않기 때문에 가능합니다페이지 항목 식별자.)
요약하면, 인덱스에서 사용하는 열이 젠 토토되지 않은 경우에만 힙 전용 튜플 젠 토토를 만들 수 있습니다. 충분한 페이지 공간의 가능성을 높일 수 있습니다.hot테이블을 줄임으로써 젠 토토FillFactor
. 그렇지 않으면hot새 행이 자연스럽게 새 페이지 및 기존 페이지로 새 행하는 여유 공간으로 새로운 페이지와 기존 페이지로 자연스럽게 마이그레이션되므로 젠 토토는 여전히 발생합니다. 시스템보기pg_stat_all_tables핫 업데이트 및 비 hot 업데이트 발생을 모니터링 할 수 있습니다.
문서에 올바른 것이없는 것이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면