Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 인덱스 사용 모범 사례와 실전 예제 총정리

데이터베이스 인덱스란 무엇인가?

데이터베이스 인덱스는 테이블 내 연산 속도를 크게 향상시키는 데이터 구조입니다. 하나 이상의 컬럼을 기반으로 생성할 수 있으며, 빠른 랜덤 조회(random lookup)와 효율적인 레코드 접근 순서 정렬의 기반이 됩니다.

MySQL 인덱스 사용 모범 사례

  • 대용량 CSV 형태의 테이블에서는 인덱스를 활용해 레코드를 테이블 끝에 순차적으로 삽입하는 방식으로 관리할 수 있습니다.
  • 인덱스는 테이블 행(row)들의 정렬된 시퀀스를 생성합니다.
  • 특정 SELECT 연산의 처리 속도를 크게 향상시킵니다.

인덱스가 성능에 미치는 영향

인덱스가 설정된 테이블에서는 INSERTUPDATE 문은 더 많은 시간이 소요되는 반면, SELECT 문은 훨씬 빠르게 실행됩니다. 그 이유는 데이터를 삽입하거나 수정할 때 데이터베이스가 인덱스 값까지 함께 갱신해야 하기 때문입니다.

예를 들어 CSV 파일처럼 데이터가 물리적으로 흩어져 저장된 경우에도, 인덱스는 행들의 논리적 순서를 유지해 주는 역할을 합니다.

MySQL 인덱스 생성 예제

실제로 테이블을 생성하고 특정 컬럼에 인덱스를 적용하는 과정을 단계별로 살펴보겠습니다.

1단계: 테이블 생성

mysql> create table IndexingDemo
   -> (
   -> Id int,
   -> Name varchar(100)
   -> );
Query OK, 0 rows affected (0.86 sec)

2단계: 인덱스 생성 문법

테이블에 인덱스를 생성하는 기본 문법은 다음과 같습니다.

create index yourIndexName on yourTableName(column_name);

3단계: 인덱스 적용 및 결과 확인

Name 컬럼에 인덱스를 생성하고 그 결과를 확인해 보겠습니다.

mysql> create index indexName on IndexingDemo(Name);
Query OK, 0 rows affected (0.75 sec)
Records: 0  Duplicates: 0  Warnings: 0

마무리

MySQL 인덱스는 읽기(조회) 성능을 극대화하는 강력한 도구입니다. 다만 쓰기 작업 시 오버헤드가 발생한다는 점을 고려하여, 조회가 빈번한 컬럼 위주로 전략적으로 인덱스를 설계하는 것이 바람직합니다.