공식 document에서 "꺼짐"으로 설정하면 계획을 실행하기 위해 분할 된 테이블과 파티션이 아닌 테이블을 확인하는 데 많은 시간을 소비합니다. 그런 경우 왜 우리는 오프 모드를 가지고 있습니까?PostgreSQL : constraint_exclusion을 해제해야 할 때?
감사합니다.
공식 document에서 "꺼짐"으로 설정하면 계획을 실행하기 위해 분할 된 테이블과 파티션이 아닌 테이블을 확인하는 데 많은 시간을 소비합니다. 그런 경우 왜 우리는 오프 모드를 가지고 있습니까?PostgreSQL : constraint_exclusion을 해제해야 할 때?
감사합니다.
나는 당신이 문서를 잘못 읽고 있다고 생각합니다.
당신은 파티션을 사용하는 경우
, 당신이해야 하지 모든 파티션은 항상 스캔 할 것이기 때문에, 그렇지 않으면 당신은, 쿼리 실행시 파티션에서 어떤 장점을 가지고하지 않습니다,constraint_exclusion
비활성화.
반면에 파티셔닝을 사용하지 않고 조건이 쿼리에 정기적으로 나타나는 테이블에 대한 확인 제약 조건이 없으면 constraint_exclusion
을 비활성화하는 데 계획 시간을 절약 할 수 있습니다.
의심 스럽다면 기본값을 사용하십시오 (일반적으로 좋은 생각입니다).
해당 사항 9.1 설명서. 버전 이상에서는 파티션 분할이 불완전합니다. 데이터를 여러 파티션으로 구분하는 트리거를 작성해야합니다. 그 트리거가 확실하지 않으면 을 설정해야합니다. constraint_exclusion을 해제하십시오.