数据库索引原理与优化
DB 인덱스 최적화
데이터베이스 인덱스가 쿼리 성능에 미치는 영향을 분석합니다.
B-Tree 인덱스
대부분의 RDBMS는 B-Tree 기반 인덱스를 사용합니다.
-- 인덱스 생성
CREATE INDEX idx_users_email ON users(email);
-- 복합 인덱스
CREATE INDEX idx_articles_cat_date ON articles(category, created_at DESC);
SQLite에서의 인덱스
-- 실행 계획 확인
EXPLAIN QUERY PLAN SELECT * FROM articles WHERE category = 'theory';
-- 인덱스 효과 측정
.timer on
SELECT * FROM articles WHERE slug = 'test';
인덱스 주의사항
- 과도한 인덱스 — INSERT/UPDATE 성능 저하
- 선택도(Selectivity) — 고유 값이 많은 컬럼에 효과적
- 커버링 인덱스 — 필요한 컬럼을 인덱스에 모두 포함
1GB RAM 서버에서는 인덱스 최적화가 곧 서버 최적화입니다.