문제

고유 한 구속 조건은 기본적으로 색인입니까? 그렇지 않은 경우, 고유 한 제약 조건은 SELECT ... WHERE 절?

감사

도움이 되었습니까?

해결책

고유 한 제약은 반드시 색인입니다. 일반적으로 "고유 한 색인"으로 정의합니다. 어쨌든 고유 한 제약 조건을 효율적으로 구현하려면 색인이 필요하므로 단점이 없습니다.

다른 팁

제약은 실제로 인덱스와 매우 다릅니다. 단지 MySQL이 당신을 위해 독창성을 시행해야한다고 말합니다. 그러나 인덱스 (고유 할 수는 있지만)는 하드 디스크의 물리적 순서 또는 열에서 효율적인 검색을 허용하는 추가 구조 (일반적으로 트리)에 관한 것입니다.

그러나이 모든 것을 (일반적으로 클러스터 된) 고유 인덱스를 정의하는 기본 키와 혼동 할 수 있습니다.

고유 한 제약 조건은 (일부 속성 값의 일부 조합)가 전체 관계의 범위 내에서 고유해야한다는 사실을 표현하는 방법입니다 ( "테이블").

그것은 논리적 디자인의 수준에 있습니다.

색인은 그러한 제약을 시행하는 데 도움이되는 유용한 수단입니다.

그것은 물리적 디자인의 수준에 있습니다.

일부 DBMS 제품은 고유 한 제약과 같은 특정 논리 설계 구성의 존재로부터 일부 인덱스의 존재와 같은 특정 물리적 설계 구성을 유추 할 수 있습니다. 다른 사람들은 그렇지 않을 수도 있습니다.

독특한 것은 실제로 제약입니다 ~에 인덱스는 그렇습니다. 고유 한 것은 독창성을 집행하는 필드에 인덱스가 있음을 의미합니다.

고유 한 제약 조건을 사용하기 전에 기본 키 제약 조건을 확인하십시오.

기본 키 제약 조건은 고유 한 제약 조건과 널 있지 않은 제약 조건을 선언하는 것입니다. 기본 키에 열이 둘 이상인 경우 각 열에는 널 구속 조건이 없지만 고유 한 구속 조건은 함께 찍은 모든 열에 적용됩니다.

기본 키를 선언하면 DBMS가 귀하를위한 색인을 만듭니다. 원하는 경우 인덱스를 삭제할 수 있지만 DBMS가 테이블 스캔을 수행하여 독창성을 확인하면 끔찍한 성능을 얻을 수 있습니다.

기본 키 제약 조건은 엔티티 무결성을 시행하는 반면, 참조 (외국 키) 제약 조건은 참조 무결성을 시행합니다. 그들은 함께 데이터 무결성을 보장하기 위해 먼 길을갑니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top