대량의 게시글 데이터를 조회할 때 Full Table Scan으로 인한 성능 저하 문제를 해결하고자,
board_id 컬럼에 인덱스를 적용하여 조회 성능을 개선했습니다.
| 구분 | 응답시간 | 설명 |
|---|---|---|
| 🔴 인덱스 적용 전 | 1718ms | Full Table Scan 발생 |
| 🟢 인덱스 적용 후 | 473ms | 인덱스 사용 → 성능 향상 |
📌 조회 성능을 약 3.6배 개선했습니다 (1718ms → 473ms)
EXPLAIN SELECT * FROM post WHERE board_id = 1 ORDER BY create_at DESC LIMIT 10 OFFSET 20;
EXPLAIN 결과, 게시글을 조회할 때 전체 테이블을 스캔하는 Full Table Scan이 발생함
CREATE INDEX idx_board_id_created_at ON post(board_id, create_at DESC);
board_id 컬럼에 인덱스를 생성
SHOW INDEX FROM post;
SHOW INDEX FROM post; 명령어를 통해 idx_board_id 인덱스가 정상 생성되었음을 확인
EXPLAIN SELECT * FROM post WHERE board_id = 1 ORDER BY create_at DESC LIMIT 10 OFFSET 20;
게시글 조회 시 type이 ref, key에 idx_board_id가 명시됨
실제로 인덱스를 사용하여 검색 범위를 줄인 것을 확인
🔺 인덱스 적용 전 - 전체 테이블 스캔으로 인해 응답 시간 지연 발생 (1718ms)
🔺 인덱스 적용 후 - 인덱스를 활용해 성능이 획기적으로 개선 (473ms)