본 보고서는 콘서트 예약 시스템에서 발생할 수 있는 데이터베이스 성능 병목 현상을 식별하고 인덱스를 활용해 이를 최적화한 과정을 정리한 것입니다. 총 100만 건 이상의 데이터를 구성하였고 인덱스 적용 전·후의 성능 차이를 수치와 로그 기반으로 비교하였습니다.



1. 개요

1.1 보고서 목적

이 보고서는 실제 운영 환경처럼 대규모 데이터를 기반으로 한 쿼리 성능 문제를 직접 분석하고 인덱스를 활용해 이를 개선해보는 내용을 담고 있다.

단순히 쿼리 속도를 비교하는 데 그치지 않고 인덱스가 어떤 원리로 작동하는지, 옵티마이저가 어떤 기준으로 실행 계획을 수립하는지를 이해하는 데 초점을 맞췄다.

이를 바탕으로 성능 향상에 실질적인 도움이 되는 방법들을 직접 도출해보고자 한다.

1.2 테스트 배경


2. 인덱스란 무엇인가?

인덱스(Index)란 데이터베이스 테이블에서 원하는 데이터를 빠르게 찾기 위한 자료 구조이다. 책의 목차와 유사하게 작동하여 전체 테이블을 순차적으로 탐색하지 않고도 원하는 레코드를 빠르게 찾을 수 있다.

MySQL에서 가장 널리 쓰이는 인덱스 구조는 B-Tree이다. WHERE, JOIN, ORDER BY, GROUP BY 등 조건 기반 탐색에서 성능 향상에 기여한다.

하지만 모든 컬럼에 인덱스를 설정한다고 성능이 향상되는 것은 아니며 데이터 분포, 조건절 사용 빈도, 쿼리 구조에 따라 효율이 달라진다.