내가 사용해야하는 경우 KEY
, PRIMARY KEY
, UNIQUE KEY
와 INDEX
?
내가 사용해야하는 경우 KEY
, PRIMARY KEY
, UNIQUE KEY
와 INDEX
?
답변:
KEY
그리고 INDEX
MySQL의 동의어입니다. 그들은 같은 것을 의미합니다. 데이터베이스에서는 인덱스 를 사용 하여 데이터 검색 속도를 향상시킵니다. 인덱스는 일반적으로 사용되는 열을 생성 JOIN
, WHERE
및 ORDER BY
조항.
테이블 users
이 있고 성명이 'Smith'인 모든 사용자를 검색하려고 한다고 가정하십시오 . 인덱스가 없으면 데이터베이스는 테이블의 모든 레코드를 거쳐야합니다. 데이터베이스에 레코드가 많을수록 결과를 찾기 위해 더 많은 작업을 수행해야하기 때문에 속도가 느립니다. 반면에 인덱스는 데이터베이스가 'Smith'레코드가있는 관련 페이지로 빠르게 건너 뛸 수 있도록 도와줍니다. 이것은 우리 인간이 전화 번호부 디렉토리를 통해 성으로 사람을 찾는 방법과 매우 유사합니다. 정보를 가능한 순서대로 삽입 한 경우에는 표지에서 디렉토리를 검색하지 않습니다. 'S'페이지로 빠르게 건너 뛸 때 사용하십시오.
기본 키와 고유 키는 비슷합니다. 기본 키는 행을 고유하게 식별 할 수있는 열 또는 열의 조합입니다. 고유 키 의 특수한 경우입니다 . 테이블에는 최대 하나의 기본 키가 있지만 둘 이상의 고유 키가있을 수 있습니다. 열에 고유 키를 지정하면 테이블의 두 개의 개별 행이 동일한 값을 가질 수 없습니다.
또한 기본 키 또는 고유 키로 정의 된 열은 MySQL에서 자동으로 인덱싱됩니다.
passengers
다음 필드를 : (id, first_name, last_name, age, passport_number)
당신이 일반적으로 설정했던 id
기본 키로 열을. 기본 키는 자동으로 고유 키입니다. 주요 차이점은 테이블에 기본 키를 하나만 가질 수 있으며 열에 NULL
값을 포함 할 수 없다는 것 입니다. 셋업 할 필요가 없습니다 id
수 열을 UNIQUE
기본 키를 설정하여, 그것은 자동으로 고유합니다 있기 때문에 ... 그럼 당신도 설정할 수 passport_number
에 UNIQUE
그래서 더 이상보다 승객 ...
NULL
문제없이 해당 열에 삽입 할 수 있습니다.
KEY와 INDEX는 동의어입니다.
성능 측정 및 EXPLAIN에 색인 누락으로 인해 쿼리가 비효율적임을 표시 할 때 색인을 추가해야합니다. 인덱스를 추가하면 쿼리 성능이 향상 될 수 있지만 테이블 수정 속도가 느려질 수 있습니다.
중복 열을 삽입하려고하면 오류가 발생하도록 해당 열의 값을 고유하게 제한하려면 UNIQUE를 사용해야합니다.
PRIMARY KEY는 고유 제한 조건이며 열이 NOT NULL임을 나타냅니다. 각 행에 ID를 부여하는 데 사용됩니다. 외래 키 제약 조건을 통해 다른 테이블과 조인하는 데 유용 할 수 있습니다. 테이블에 PRIMARY KEY가있는 것은 아니지만 일반적으로 좋은 생각입니다.
기본 키 는 NULL
값을 허용하지 않지만 고유 키 는 NULL
값을 허용 합니다.
테이블에서 하나의 기본 키만 선언 할 수 있지만 테이블에는 여러 개의 고유 키 (열 할당) 가있을 수 있습니다 .
PRIMARY KEY
AND UNIQUE KEY
는 다른 기능을 가지고 있다는 점을 제외하면 비슷합니다. 기본 키는 테이블 행을 고유하게 만듭니다 (즉, 동일한 키를 가진 2 개의 행을 가질 수 없음). 데이터베이스 테이블에는 1 개의 기본 키만있을 수 있습니다.
고유 키는 테이블 행의 테이블 열을 고유하게 만듭니다 (즉, 2 개의 테이블 행이 동일한 정확한 값을 가질 수 없음). 테이블에서 하나의 테이블 열만 고유함을 나타내는 기본 키와 달리 고유 키 테이블 열을 두 개 이상 가질 수 있습니다.
INDEX
또한 독창성을 만듭니다. MySQL (예)은 인덱싱 된 열에 대한 인덱싱 테이블을 만듭니다. 이렇게하면 인덱스 된 테이블 열에서 쿼리를 쿼리 할 때 테이블 행 값을 더 쉽게 검색 할 수 있습니다. 단점은 많은 업데이트 / 삭제 / 생성을 수행하는 경우 MySQL이 인덱싱 테이블을 관리해야하며 성능 병목 현상이 발생할 수 있다는 것입니다.
도움이 되었기를 바랍니다.
UNIQUE KEY
수는 NULL
있지만 일 PRIMARY KEY
수는 없습니다 NULL
.
고유 키 : 두 행이 유사한 열
기본 키 : 테이블의 모든 행을 고유하게 식별 할 수있는 최소 열 수의 모음입니다 (즉, 기본 키를 구성하는 모든 열에서 두 행이 유사하지는 않습니다). 테이블에 둘 이상의 기본 키가있을 수 있습니다. 고유 키가 있으면 테이블에 기본 키 ( "기본"키가 아님)가 있습니다. 고유 키가 없으면 일부 테이블에서 (first_name, last_name, father_name, mother_name)과 같은 행을 식별하기 위해 둘 이상의 열 값이 필요합니다.
인덱스 : 쿼리를 최적화하는 데 사용됩니다. 일부 열을 기준으로 결과를 여러 번 검색하거나 정렬하려는 경우 (예 : 대부분 사람들이 롤 번호가 아닌 이름으로 학생을 검색 할 경우) 열 값이 모두 " 이진 트리 알고리즘을 사용하여 색인을 생성했습니다.
고유 키 :
기본 키