1. PK(Primary Key)란?
PK는 테이블에서 각 행(row)을 고유하게 식별할 수 있는 열(column)입니다. 쉽게 말해서 주민등록번호나 학번처럼 절대로 중복되지 않는 고유한 값이에요.

 

PK의 특징
- 중복될 수 없음
- NULL 값을 가질 수 없음
- 테이블당 하나만 존재

2. 인덱스(Index)란?
인덱스는 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조입니다. 책의 목차나 사전의 색인과 같은 역할을 한다고 생각하면 됩니다.

 

인덱스의 특징
검색 속도가 빨라짐
데이터 입력/수정/삭제 시 약간의 성능 저하가 있음
추가 저장공간이 필요함

3. PK와 인덱스의 관계
중요: PK로 지정된 열은 자동으로 인덱스가 생성됩니다!
실생활 예시로 이해하기 🏫


학생 정보 테이블 예시:
CREATE TABLE students (
    student_id INT PRIMARY KEY,  -- PK로 지정
    name VARCHAR(50),
    grade INT
);

이를 실생활에 비유하면
학생증(PK)
모든 학생은 고유한 학번을 가짐
절대 중복될 수 없음
반드시 가지고 있어야 함

학생 명부(인덱스)
학번 순으로 정렬되어 있음
특정 학생을 빨리 찾을 수 있음
명부가 있으면 전체 학생부를 뒤지지 않아도 됨

검색 예시
SELECT * FROM students WHERE student_id = 12345;

PK로 검색할 때: 인덱스를 통해 바로 찾을 수 있음 (매우 빠름)
인덱스 없는 일반 열로 검색할 때: 모든 데이터를 하나씩 확인해야 함 (느림)

4. 정리
PK는 각 행의 고유한 식별자
인덱스는 검색 속도를 높이기 위한 도구
PK는 자동으로 인덱스가 생성됨
PK는 테이블당 하나, 인덱스는 여러 개 가능

PK는 우리의 주민등록번호, 인덱스는 전화번호부라고 생각하면 됩니다. 주민등록번호로 사람을 찾을 때는 자동으로 정리된 목록(인덱스)이 있어서 빨리 찾을 수 있죠!

728x90

+ Recent posts