2013-12-20 2 views
0

누구나 Mysql의 Primary, Unique 및 Index 키의 차이점을 설명 할 수 있습니까? 서로 다른 상황에서 각각의 것을 설명 할 수 있습니까? ?Mysql의 기본, 고유 및 인덱스

+0

링크를 게시 해 주셔서 감사합니다. –

답변

1

네 이러한

KEY 다른 또는 INDEX는 정상이 아닌 고유 인덱스를 의미한다. 인덱스에 대해 다른 값을 사용할 수 없으므로 인덱스에는 인덱스의 모든 열에 동일한 값을 가진 행이 포함될 수 있습니다. 이러한 인덱스는 데이터에 대한 제한을 적용하지 않으므로 특정 쿼리를 신속하게 실행할 수 있도록하기 위해 사용됩니다.

UNIQUE는 색인의 모든 행이 고유해야하는 색인을 나타냅니다. 즉, 같은 행은이 인덱스의 모든 열에 대해 다른 행과 동일한 NULL이 아닌 값을 가질 수 없습니다. 데이터베이스 시스템은 데이터를 삽입하거나 업데이트 할 때이 고유 한 값 규칙이 깨지지 않도록하기 때문에 쿼리의 속도를 높이는 데 사용되는 것뿐만 아니라 UNIQUE 인덱스를 사용하여 데이터에 대한 제한을 적용 할 수 있습니다.

데이터베이스 시스템에서 NULL 값을 허용하는 열에 UNIQUE 인덱스를 적용 할 수 있습니다.이 경우 두 열 모두 NULL 값을 포함하면 두 행이 동일하게 허용됩니다 (여기에서의 이유는 NULL이 같지 않은 것으로 간주됩니다 자신에게). 그러나 응용 프로그램에 따라 바람직하지 않을 수 있습니다.이를 방지하려면 관련 열에서 NULL 값을 허용하지 않아야합니다.

PRIMARY는 항상 'PRIMARY'로 명명되며 테이블에 하나만있을 수 있다는 점을 제외하고는 UNIQUE 인덱스와 정확히 동일하게 작동합니다 (일부 데이터베이스 시스템에서는이를 적용하지 않지만 테이블에 하나만있을 수 있음). PRIMARY 인덱스는 테이블의 모든 행을 고유하게 식별하기위한 기본 수단으로 사용되므로 UNIQUE와 달리 NULL 값을 허용하는 열에는 사용하면 안됩니다. PRIMARY 색인은 행을 고유하게 식별하는 데 충분한 최소 수의 열에 있어야합니다. 종종 고유 한 자동 증가 숫자가 포함 된 하나의 열일 뿐이지 만 국가 목록에서 "국가 코드"와 같이 행을 고유하게 식별 할 수있는 다른 것이 있으면 그 대신 사용할 수 있습니다.

일부 데이터베이스 시스템 (예 : MySQL의 InnoDB)은 테이블의 레코드를 PRIMARY 인덱스에 나타나는 순서대로 디스크에 저장합니다.

2

프라이 머리는 각 행을 식별 할 수있는 테이블의 열 또는 둘 이상의 열의 값의 조합 값입니다. 예를 들어 ID int, FirstName varchar(50), LastName(50) 열이 포함 된 표 Customers을 예로 들어 보겠습니다. 그런 다음 ID 열을 사용하여 사용자를 식별 할 수 있으므로이 테이블의 PK로 사용할 수 있습니다. 단 하나의 고객이있을 경우 ID = 4 또는 ID = 10 등이 있습니다.

고유는 각 개별 레코드에 대해 고유 한 값을 가져야하는 테이블의 열 값입니다.

인덱스 키는 테이블에 대한 쿼리 실행을 빠르게 실행하는 테이블의 열 또는 열의 조합입니다. 테이블에 많은 레코드가 있고 간단한 쿼리조차도 완료하는 데 시간이 너무 오래 걸리는 경우 유용합니다.