guid를 기본 키로 삽입 할 때 db 서버는 모든 행을 통해 중복이 없는지 확인하거나 중복이 불가능하거나 거의 없다고 가정합니다. DB 서버는 단순히 GUID를sql 서버가 삽입시 중복 된 GUID를 확인합니까?
2
A
답변
5
열이 기본 키라고 말하면 데이터베이스 책임입니다.
이 시점에서 걱정할 필요가있는 것이 아니므로 데이터베이스가이 문제에 대해 걱정하지 않도록하십시오.
또한 기본 키이므로 색인이 생성됩니다. 따라서 각 행 (또는 테이블 스캔)이 실제로이 레벨에서 발생하지는 않을 것이라는 것에 대한 귀하의 선행 관심사. 데이터베이스는 인덱스 파일을 사용하여 고유 한 값만 삽입 될 수 있도록합니다.
0
나는 그것이 기본 키 또는 고유 키
경우에만 추측하지만 내가 아는 한 GUID를이 고유의 경우를 키를 증가 수는 없지만하는 int와
.
1
모든 기본 키는 고유합니다. 따라서 서버는 두 행에 동일한 기본 키가 있는지 확인하지 않아도됩니다. 기본 키가 int, varchar, guid이면 무엇이든 참입니다. 고유성 제약 조건이 확인되는 방법은 구현에 따라 정의됩니다. 기본적으로 성능 장벽으로 보지 않는 한 관심을 갖지 마십시오.
성능에 대해 과도하게 걱정하기 전에 항상 프로필.
GUID는 확률 적으로 고유하지만 보장되지는 않습니다 (많은 구현에서). –
예, 임의의 GUID 생성기를 사용하는 경우 복제본을 얻게됩니다 (거의 발생하지 않음). 그러나이 두 개의 중복을 기본 키로 삽입하려고하면 서버에서 오류를 표시합니다. –