반응형
소개
Primary Key (기본 키)는 데이터베이스 테이블의 특정 열(또는 열의 조합)에 대한 고유한 식별자로 사용되는 열입니다. 이를 통해 각 레코드는 테이블 내에서 고유하게 식별되며, Primary Key는 해당 테이블의 주요 식별 수단이 됩니다.
Primary Key는 다음과 같은 특징을 가지고 있습니다:
- 고유성 (Uniqueness): Primary Key는 테이블 내의 각 레코드를 고유하게 식별해야 합니다. 즉, Primary Key 값은 중복되어서는 안됩니다.
- NULL 값 불허 (Non-Null): Primary Key 값은 NULL이 될 수 없습니다. 각 레코드는 반드시 Primary Key 값을 가져야 합니다.
- 불변성 (Immutability): Primary Key 값은 레코드가 추가, 삭제, 수정되더라도 변경되지 않아야 합니다. 이는 데이터베이스의 일관성을 유지합니다.
- 테이블에 단 하나만 존재: 각 테이블에는 보통 하나의 Primary Key가 정의됩니다. 복합 Primary Key(두 개 이상의 열의 조합)을 사용할 수도 있습니다.
Primary Key와 인덱스는 밀접한 관련이 있습니다. Primary Key를 정의하면 데이터베이스 시스템은 해당 열(또는 열의 조합)에 대해 자동으로 유일한 인덱스를 생성합니다. 이는 검색 속도를 향상시키고, 특정 레코드에 빠르게 접근할 수 있도록 도와줍니다.
따라서 Primary Key는 테이블의 각 레코드를 고유하게 식별하고, 인덱스는 데이터에 빠르게 접근할 수 있게 하는 데에 기여합니다. Primary Key를 사용하면 데이터의 무결성을 강화하고, 효율적인 데이터 검색을 가능케 합니다.
인덱스란
- 검색 속도 향상: 인덱스는 데이터베이스 열의 값을 미리 정렬하여 검색 속도를 향상시킵니다. 특히 대량의 데이터가 있는 테이블에서 특정 값을 검색할 때 유용합니다.
- 유일성과 고유성 검증: 유일한 값으로 설정된 인덱스는 중복을 방지하고 해당 열에 대한 고유성을 보장합니다. Primary Key는 보통 유일성을 지원하기 위해 인덱스를 사용합니다.
- 정렬된 데이터: 인덱스는 해당 열의 데이터를 정렬된 형태로 저장하므로 정렬된 데이터를 필요로 하는 쿼리의 성능을 향상시킵니다.
- WHERE 절 성능 향상: WHERE 절에 사용되는 조건문이 인덱스에 해당하는 열을 포함하고 있을 때 검색 성능이 개선됩니다.
- JOIN 성능 향상: 여러 테이블 간의 JOIN 연산에서도 인덱스가 사용될 경우 성능이 향상됩니다.
그러나 인덱스를 사용함으로써 발생할 수 있는 일부 단점도 있습니다:
- 저장 공간 사용: 인덱스는 추가적인 저장 공간을 필요로 합니다. 대규모 테이블에서 많은 인덱스를 사용하면 저장 공간의 부담이 될 수 있습니다.
- 삽입, 수정, 삭제 성능 저하: 데이터를 삽입, 수정, 삭제할 때 인덱스를 업데이트하는 작업이 추가로 수행되므로 성능에 영향을 미칠 수 있습니다.
- 적절한 인덱스 선택 필요: 적절한 열에 대해 인덱스를 선택하지 않으면 오히려 성능 저하가 발생할 수 있습니다.
따라서 데이터베이스 설계에서는 어떤 열에 인덱스를 설정할지 신중하게 결정해야 합니다. 인덱스는 검색 성능을 향상시키지만, 그에 따른 관리와 오버헤드도 고려해야 합니다.
반응형
'개발 > SQL' 카테고리의 다른 글
[SQL] RDB란? (0) | 2023.12.06 |
---|