집 >데이터 베이스 >MySQL 튜토리얼 >Postgres의 고유 제약 조건과 고유 인덱스: 언제 어느 것을 사용해야 합니까?
PostgreSQL의 고유 제약조건과 고유 인덱스의 실제 적용
PostgreSQL 문서에는 고유 제약 조건과 고유 인덱스가 기능적으로 동일하다고 명시되어 있지만 ALTER TABLE ... ADD CONSTRAINT
구문을 사용하여 고유 제약 조건을 적용할 것을 권장합니다. 이로 인해 성능이나 기능의 잠재적인 차이에 대한 의문이 제기됩니다.
고유 제약조건과 고유 인덱스 비교
차이점을 설명하기 위해 고유 제약 조건이 있는 master
열과 고유 인덱스로 색인이 생성된 con_id
라는 두 개의 열이 있는 ind_id
이라는 테이블을 만들어 보겠습니다.
<code class="language-sql">create table master ( con_id integer unique, ind_id integer ); create unique index master_idx on master (ind_id);</code>
고유성과 외래 키
고유 제약 조건과 고유 인덱스는 모두 해당 열에 고유성을 적용합니다. 중복된 값을 삽입하면 실패합니다. 이러한 열을 참조하는 외래 키는 두 유형 모두에서 작동합니다.
인덱스를 제약조건으로 사용
다음 구문을 사용하여 기존 고유 인덱스를 사용하여 테이블 제약 조건을 생성할 수 있습니다.
<code class="language-sql">alter table master add constraint master_idx_key unique using index master_idx;</code>
이후에는 열 제약 조건에 대한 설명에 차이가 없습니다.
로컬 인덱스
고유 인덱스 선언을 사용하면 WHERE 절을 사용하여 인덱스할 행의 하위 집합을 지정하는 부분 인덱스를 생성할 수 있습니다. 그러나 고유 제한조건은 이를 허용하지 않습니다.
성능 및 가용성
고유 제약 조건과 고유 인덱스 간에는 큰 성능 차이가 없지만 다음 사항이 선택에 영향을 미칠 수 있습니다.
이러한 고려 사항을 바탕으로 대부분의 경우 선호되는 접근 방식은 일반적으로 고유 제약 조건을 사용하는 것입니다. 부분 인덱스나 사용자 정의 인덱스 매개변수가 필요한 상황에서는 고유 인덱스가 더 유리할 수 있습니다. 그러나 최종 선택은 특정 데이터베이스 디자인 요구 사항 및 기본 설정에 따라 달라집니다.
위 내용은 Postgres의 고유 제약 조건과 고유 인덱스: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!