기본 키에 대한 SQL 데이터 유형 - SQL 서버?
숫자 기반 기본 키에 사용할 SQL 데이터 유형:
- 인트
- 큰 뜻
- 숫자의
- 흘러가다
일반적으로.int
.
bigint
우주에 원자가 있는 것보다 더 많은 줄이 있을 것이라고 생각한다면요.
uniqueidentifier
전역적으로 고유한 키(스키마의 모든 테이블에서 고유하도록 보장된 키, 심지어 보편적으로 고유한 키(기억이 나지 않음)가 필요한 경우 유용합니다.
다른 두 가지는 사용하지 않을 것입니다(그들은 분수가 있고, 키로서 의미가 별로 없습니다).
두 가지 문제를 분리해야 합니다.
기본 키는 테이블에서 행을 고유하고 안정적으로 식별하는 주요 후보 중 하나인 논리 구성입니다.INT, GUID, 문자열 등 시나리오에 가장 적합한 항목을 선택할 수 있습니다.
클러스터링 키(테이블의 "클러스터 인덱스"를 정의하는 열 또는 열)는 물리적 스토리지와 관련된 것입니다. 여기서는 작고 안정적이며 지속적으로 증가하는 데이터 유형인 INT 또는 BIGINT를 기본 옵션으로 선택하는 것이 좋습니다.
기본적으로 SQL Server 테이블의 기본 키는 클러스터링 키로도 사용되지만 클러스터링 키로 사용될 필요는 없습니다!개인적으로 이전 GUID 기반 기본 클러스터 키를 GUID의 기본(논리) 키와 별도의 INT IDITY(1,1) 열의 클러스터링(주문) 키의 두 개의 개별 키로 분할하면 시간이 지남에 따라 성능이 크게 향상된 것으로 보입니다.
인덱스 조각화가 최소 수준으로 떨어졌기 때문에 인덱스 탐색 성능이 향상되었습니다. 매우 권장됩니다!
마르크
PK에 GUID를 사용하지 않는 큰 이유 중 하나는 인덱스 페이지에 대한 채우기 비율이 너무 나쁘기 때문입니다. 이러한 오용은 I/O 성능 비용을 크게 증가시킬 수 있습니다.GUID는 AK로 유지하고 가능한 한 내부 파생 PK로 쿼리를 실행해야 합니다.
32비트 프로세서의 경우 int가 처리에 가장 효율적인 크기일 가능성이 높습니다.
unsigned int
당신의 특별한 요구를 충족시키는 어떤 크기의.
언급URL : https://stackoverflow.com/questions/255569/sql-data-type-for-primary-key-sql-server
'itsource' 카테고리의 다른 글
오라클 패키지에서 기본값을 정의할 위치 (0) | 2023.08.10 |
---|---|
Android: ScrollView 내부의 View가 보이는지 확인하는 방법은 무엇입니까? (0) | 2023.08.10 |
기본 키를 사용하여 행을 업데이트할 때 MariaDB 고정 (0) | 2023.08.10 |
Instruments ObjectAlloc: 실시간 바이트 및 전체 바이트 설명 (0) | 2023.08.05 |
Docker for Windows가 드라이브를 공유할 수 있도록 Windows 방화벽 설정 (0) | 2023.08.05 |