저는 Postgres 9.4.7을 가지고 있고 큰 테이블 ~ 100M 행과 20 개의 열을 가지고 있습니다. 테이블 쿼리는 1.5k 셀렉트, 150 인서트 및 분 당 300 업데이트, 삭제는 없습니다. 여기 내 자동 진공의 설정입니다 :큰 테이블 진공 청소기를 사용하는 PostgreSQL
autovacuum_analyze_scale_factor 5000
autovacuum_vacuum_scale_factor 0
autovacuum_vacuum_threshold 0
autovacuum_analyze_threshold 5000
autovacuum_max_workers 내 경우 데이터베이스에서 5 초는
진공 청소기의 지속적인 상태에 거의 항상 6
autovacuum_naptime. 하나의 vacuuming 세션이 끝나면 다른 세션이 시작됩니다.
그래서 중요한 질문 : 대형 테이블을 진공 청소할 수있는 일반적인 방법이 있습니까?
다음은 몇 가지 다른 질문입니다.
표준 진공은 전체 테이블을 스캔하지 않으며 '분석'은 30k 행만 스캔합니다. 그래서 같은 부하에서 일정한 실행 시간을 가져야합니다. 사실입니까? 정말 테이블을 분석해야합니까? 대형 테이블에 대한 쿼리 계획에서 유용한 '변경'을 자주 '분석'할 수 있습니까?
당신은 9.6을 가지고 있습니까? 그렇지 않다면 '표준 진공은 전체 테이블을 스캔하지 않습니다'는 false입니다 –