[mysql] MySQL에서 키, 기본 키, 고유 키 및 인덱스의 차이점

내가 사용해야하는 경우 KEY, PRIMARY KEY, UNIQUE KEYINDEX?



답변

KEY그리고 INDEXMySQL의 동의어입니다. 그들은 같은 것을 의미합니다. 데이터베이스에서는 인덱스 를 사용 하여 데이터 검색 속도를 향상시킵니다. 인덱스는 일반적으로 사용되는 열을 생성 JOIN, WHEREORDER BY조항.

테이블 users이 있고 성명이 ‘Smith’인 모든 사용자를 검색하려고 한다고 가정하십시오 . 인덱스가 없으면 데이터베이스는 테이블의 모든 레코드를 거쳐야합니다. 데이터베이스에 레코드가 많을수록 결과를 찾기 위해 더 많은 작업을 수행해야하기 때문에 속도가 느립니다. 반면에 인덱스는 데이터베이스가 ‘Smith’레코드가있는 관련 페이지로 빠르게 건너 뛸 수 있도록 도와줍니다. 이것은 우리 인간이 전화 번호부 디렉토리를 통해 성으로 사람을 찾는 방법과 매우 유사합니다. 정보를 가능한 순서대로 삽입 한 경우에는 표지에서 디렉토리를 검색하지 않습니다. ‘S’페이지로 빠르게 건너 뛸 때 사용하십시오.

기본 키와 고유 키는 비슷합니다. 기본 키는 행을 고유하게 식별 할 수있는 열 또는 열의 조합입니다. 고유 키 의 특수한 경우입니다 . 테이블에는 최대 하나의 기본 키가 있지만 둘 이상의 고유 키가있을 수 있습니다. 열에 고유 키를 지정하면 테이블의 두 개의 개별 행이 동일한 값을 가질 수 없습니다.

또한 기본 키 또는 고유 키로 정의 된 열은 MySQL에서 자동으로 인덱싱됩니다.


답변

KEY와 INDEX는 동의어입니다.

성능 측정 및 EXPLAIN에 색인 누락으로 인해 쿼리가 비효율적임을 표시 할 때 색인을 추가해야합니다. 인덱스를 추가하면 쿼리 성능이 향상 될 수 있지만 테이블 수정 속도가 느려질 수 있습니다.

중복 열을 삽입하려고하면 오류가 발생하도록 해당 열의 값을 고유하게 제한하려면 UNIQUE를 사용해야합니다.

PRIMARY KEY는 고유 제한 조건이며 열이 NOT NULL임을 나타냅니다. 각 행에 ID를 부여하는 데 사용됩니다. 외래 키 제약 조건을 통해 다른 테이블과 조인하는 데 유용 할 수 있습니다. 테이블에 PRIMARY KEY가있는 것은 아니지만 일반적으로 좋은 생각입니다.


답변

기본 키NULL값을 허용하지 않지만 고유 키NULL값을 허용 합니다.

테이블에서 하나의 기본 키만 선언 할 수 있지만 테이블에는 여러 개의 고유 키 (열 할당) 가있을 수 있습니다 .


답변

PRIMARY KEYAND UNIQUE KEY는 다른 기능을 가지고 있다는 점을 제외하면 비슷합니다. 기본 키는 테이블 행을 고유하게 만듭니다 (즉, 동일한 키를 가진 2 개의 행을 가질 수 없음). 데이터베이스 테이블에는 1 개의 기본 키만있을 수 있습니다.

고유 키는 테이블 행의 테이블 열을 고유하게 만듭니다 (즉, 2 개의 테이블 행이 동일한 정확한 값을 가질 수 없음). 테이블에서 하나의 테이블 열만 고유함을 나타내는 기본 키와 달리 고유 키 테이블 열을 두 개 이상 가질 수 있습니다.

INDEX또한 독창성을 만듭니다. MySQL (예)은 인덱싱 된 열에 대한 인덱싱 테이블을 만듭니다. 이렇게하면 인덱스 된 테이블 열에서 쿼리를 쿼리 할 때 테이블 행 값을 더 쉽게 검색 할 수 있습니다. 단점은 많은 업데이트 / 삭제 / 생성을 수행하는 경우 MySQL이 인덱싱 테이블을 관리해야하며 성능 병목 현상이 발생할 수 있다는 것입니다.

도움이 되었기를 바랍니다.


답변

고유 키 : 두 행이 유사한 열

기본 키 : 테이블의 모든 행을 고유하게 식별 할 수있는 최소 열 수의 모음입니다 (즉, 기본 키를 구성하는 모든 열에서 두 행이 유사하지는 않습니다). 테이블에 둘 이상의 기본 키가있을 수 있습니다. 고유 키가 있으면 테이블에 기본 키 ( “기본”키가 아님)가 있습니다. 고유 키가 없으면 일부 테이블에서 (first_name, last_name, father_name, mother_name)과 같은 행을 식별하기 위해 둘 이상의 열 값이 필요합니다.

인덱스 : 쿼리를 최적화하는 데 사용됩니다. 일부 열을 기준으로 결과를 여러 번 검색하거나 정렬하려는 경우 (예 : 대부분 사람들이 롤 번호가 아닌 이름으로 학생을 검색 할 경우) 열 값이 모두 ” 이진 트리 알고리즘을 사용하여 색인을 생성했습니다.


답변

기본 키 -테이블에 하나의 기본 키만 테이블에 넣을 수 있으며 테이블에 값을 입력 할 때 해당 열을 비워 둘 수 없습니다.

고유 키 -테이블에 둘 이상의 고유 키를 넣을 수 있으며 테이블에 값을 입력 할 때 해당 열을 비워 둘 수 있습니다. 기본 키와 고유 키를 적용 할 때 열의 고유 값 (동일하지 않음)을 사용합니다.


답변

기본 키는 다른 테이블 작업에 사용됩니다. 이것이 관계형 데이터베이스의 기초입니다. 책 데이터베이스가있는 경우 2 개의 테이블-1) 책 및 2) INT 기본 키 “id”를 가진 저자를 만드는 것이 좋습니다. 그런 다음 저자 이름 대신 책에서 id를 사용합니다.

반복되는 항목을 원하지 않으면 고유 키가 사용됩니다. 예를 들어, 책 테이블에 제목이 있고 각 제목에 대해 하나의 항목 만 있는지 확인하려고 할 수 있습니다.