[DB] UNIQUE INDEX

handa·2024년 12월 4일
0
post-thumbnail

데이터베이스 인덱스의 한 유형으로, 특정 컬럼이나 컬럼 조합의 값이 중복되지 않도록 보장하는 역할을 합니다. 기본적으로 데이터 무결성을 유지하기 위해 사용됩니다.


Unique Index의 특징

  1. 중복 방지
    • 인덱스가 적용된 컬럼(또는 컬럼 조합)에 대해 동일한 값이 중복 저장되지 않도록 보장.
    • 예를 들어, 이메일 주소, 주민등록번호, 사용자 ID 등 고유 값이 필요한 경우에 적합.
  2. NULL 값 허용
    • 대부분의 데이터베이스에서 유니크 인덱스는 NULL 값을 허용.
    • 그러나 컬럼에 여러 NULL 값이 존재할 수 있는지는 DBMS에 따라 다름.
      (예: MySQL에서는 NULL 값이 여러 개 허용되지만, SQL Server는 하나만 허용)
  3. 무결성 제약 조건
    • Unique Index는 데이터베이스의 무결성 제약 조건(UNIQUE 제약 조건)과 밀접하게 관련.
    • 인덱스가 생성되면 내부적으로 데이터 유효성 검사 기능을 자동으로 수행.

Unique Index와 Primary Key의 차이점

항목유니크 인덱스기본 키 (Primary Key)
중목허용 여부중복 불가중복 불가
NULL 허용 여부일부 DBMS에서 허용NULL 값 불가
테이블 내 개수여러 개 생성 가능테이블 당 하나만 존재 가능
역할특정 컬럼의 유일성 보장유일성과 기본 식별자로의 역할 수행

Unique Index 생성 방법

CREATE UNIQUE INDEX index_name ON table_name(column_name);

장점

  1. 데이터 무결성 유지 : 고유 값 제약을 통해 데이터 물질 보장.
  2. 빠른 검색 성능 : 유니크한 값을 기준으로 효율적으로 데이터 검색.
  3. 데이터 중복 방지 : 논리적 오류 감소.

단점

  1. NULL 처리의 제약 : DBMS 별로 NULL 값 처리 방식이 달라 설계 시 주의 필요.
  2. 쓰기 성능 저하 : 데이터 삽입/갱신 시 중복 검사로 인한 오버헤드.

profile
진짜 해보자

0개의 댓글