Postgresql 기본 키 정의에서 열 순서가 중요합니까?

Postgresql 기본 키 정의에서 열 순서가 중요합니까?

Postgresql을 사용하면 원하는 경우 다음과 같이 열 그룹 대신 열 그룹을 사용하여 기본 키를 정의할 수 있습니다.

PRIMARY KEY(a_id, b_id)

하지만 이 정의에서 열의 순서가 중요한가요? 위와 아래 사이에 실제적이거나 실제적인 차이점이 있습니까?

PRIMARY KEY(b_id, a_id)

문서에서는 이 문제를 직접적으로 다루지 않습니다. 이는 순서가 중요하지 않아야 함을 의미하며, information_catalog 테이블을 쿼리할 때 매개변수 순서의 차이를 확인할 수 있는 항목이 없습니다.

그러나 \d대체 정의를 사용하여 두 테이블에 명령을 사용하면 출력에 설명된 열 순서가 변경됩니다. 분명히 기본 키 정의의 순서를 유지하는 것이 있지만 pg_catalog이는 두 정의 사이에 기능적 차이가 전혀 없음을 의미합니까?

감사합니다

답변1

하지만 이 정의에서 열의 순서가 중요한가요? 위와 아래 사이에 실제적이거나 실제적인 차이점이 있습니까?

PRIMARY KEY기본 UNIQUEb-트리 인덱스가 해당 순서의 속성으로 생성되고 인덱스 조회 효율성에 영향을 준다는 점에서 열 순서는 중요합니다. 일반적으로 가장 선택적인 속성을 먼저 원합니다. 이는 성능에만 영향을 미치며 쿼리의 의미는 변경되지 않습니다.

없다의미론적차이는 을 UNIQUE (a, b)의미하기 때문입니다 UNIQUE (b,a).

관련 정보