| 인덱스 종류 | 설명 |
|---|---|
| PRIMARY KEY | 유일값 + 클러스터형 인덱스 (가장 빠름) 기본 키이며 NULL 불가 |
| UNIQUE KEY | 유일값 보장 + 비클러스터형 인덱스 |
| NORMAL KEY | 중복 허용 일반 인덱스 (가장 일반적인 형태) |
| FULLTEXT INDEX | 본문 검색용 인덱스 ※ MySQL 기본은 한글 미지원 (영문 위주) ※ 한글은 mroonga 플러그인 설치 필요 |
| 항목 | 클러스터형 인덱스 (Primary Key) | 비클러스터형 인덱스 (나머지) |
|---|---|---|
| 저장 위치 | 인덱스와 row가 함께 저장됨 | 인덱스는 별도로, row는 포인터 따라 조회 |
| 조회 성능 | 더 빠름 | 다소 느릴 수 있음 |
| 인덱스 종류 | 단 하나만 가능 (PK) | 여러 개 생성 가능 |
SELECT * FROM quotes WHERE id = 500;
id에 인덱스 없으면 → 풀 테이블 스캔id에 인덱스 있으면 → 이진 탐색 후 포인터 따라 row 조회EXPLAIN SELECT * FROM quotes WHERE id = 500;
EXPLAIN을 붙이면 해당 SQL이 실제로 어떻게 실행되는지 확인 가능| 항목 | DELETE | TRUNCATE |
|---|---|---|
| 대상 | 조건 지정 가능 | 전체 테이블만 가능 |
| 트랜잭션 지원 | O | X (롤백 불가) |
| 인덱스 유지 여부 | 유지됨 | 모두 삭제됨 |
| AUTO_INCREMENT | 유지됨 | 초기화됨 (다시 1부터 시작) |
| 속도 | 느림 | 빠름 |