2017-09-07 2 views
1

나는 SQL 프로그래밍에 익숙하지 않고, UUID (32 CHAR 고유의 16 진 문자열)와 허가 (시스템 I 'admin'또는 'blacklist'와 같이 사용).고유 키를 프라이 머리 키로 사용하는 MySQL

나는 기본 키의 개념이 가장 뛰어나다. 따라서 UUID를 기본 키로 사용할 수 있는지 궁금해했다. 공백없이 100 % 고유 한 것으로 간주했는데, 이미 쉽게 색인을 생성하기 위해 사용하고있다. 내 쿼리. 나는 테이블에 아무것도 참여하지 않을 것이며 그럴 가능성이 결코 없기 때문에 예기치 않은 결과없이 UUID를 기본 키로 사용할 수 있습니까?

답변

1

유효으로 UUID를 기본 키로 사용합니다. 기본 키에 필요한 두 가지 조건을 충족합니다.

  • 고유합니다.
  • 절대 NULL이 아닙니다.

그러나 나쁜 생각입니다. 왜? MySQL은 기본 키로 데이터를 자동으로 클러스터링합니다. 즉, 데이터는 실제로 기본 키에 의해 정렬됩니다. UUID는 순차적이지 않습니다. 삽입물은 어디서든 발생할 수 있으므로 데이터 이동이 필요합니다.

나는 간단한 자동 기본 키를 증가 추천하고 고유 한 UUID를 선언합니다 :

+1

을 또는 당신은 단지 전체 기본 키를 떠날 수 및 고유으로 UUID를 선언합니다. – Barmar

+0

@Barmar는 InnoDB에서 동일한 효과를 나타냅니다. 기본 키가 정의되지 않고 null이 아닌 고유 키가 하나 인 경우 해당 고유 키가 클러스터 된 인덱스가됩니다. –

관련 문제