데이터베이스 인덱스의 한 유형으로, 특정 컬럼이나 컬럼 조합의 값이 중복되지 않도록 보장하는 역할을 합니다. 기본적으로 데이터 무결성을 유지하기 위해 사용됩니다.
Unique Index의 특징
- 중복 방지
- 인덱스가 적용된 컬럼(또는 컬럼 조합)에 대해 동일한 값이 중복 저장되지 않도록 보장.
- 예를 들어, 이메일 주소, 주민등록번호, 사용자 ID 등 고유 값이 필요한 경우에 적합.
- NULL 값 허용
- 대부분의 데이터베이스에서 유니크 인덱스는 NULL 값을 허용.
- 그러나 컬럼에 여러 NULL 값이 존재할 수 있는지는 DBMS에 따라 다름.
(예: MySQL에서는 NULL 값이 여러 개 허용되지만, SQL Server는 하나만 허용)
- 무결성 제약 조건
- Unique Index는 데이터베이스의 무결성 제약 조건(UNIQUE 제약 조건)과 밀접하게 관련.
- 인덱스가 생성되면 내부적으로 데이터 유효성 검사 기능을 자동으로 수행.
Unique Index와 Primary Key의 차이점
항목 | 유니크 인덱스 | 기본 키 (Primary Key) |
---|
중목허용 여부 | 중복 불가 | 중복 불가 |
NULL 허용 여부 | 일부 DBMS에서 허용 | NULL 값 불가 |
테이블 내 개수 | 여러 개 생성 가능 | 테이블 당 하나만 존재 가능 |
역할 | 특정 컬럼의 유일성 보장 | 유일성과 기본 식별자로의 역할 수행 |
Unique Index 생성 방법
CREATE UNIQUE INDEX index_name ON table_name(column_name);
장점
- 데이터 무결성 유지 : 고유 값 제약을 통해 데이터 물질 보장.
- 빠른 검색 성능 : 유니크한 값을 기준으로 효율적으로 데이터 검색.
- 데이터 중복 방지 : 논리적 오류 감소.
단점
- NULL 처리의 제약 : DBMS 별로 NULL 값 처리 방식이 달라 설계 시 주의 필요.
- 쓰기 성능 저하 : 데이터 삽입/갱신 시 중복 검사로 인한 오버헤드.