MySQL에서 인덱스의 사용

SHONG·2024년 7월 31일

SQL

목록 보기
15/15
post-thumbnail

인덱스(Index)

인덱스는 테이블의 열(컬럼)에 대한 빠른 검색을 가능하게 하는 데이터 구조이다.
데이터베이스 테이블의 특정 열에 대한 데이터를 정렬된 방식으로 저장하여 검색 속도를 향상시킨다.


인덱스를 사용하는 이유

데이터베이스에서 대량의 데이터를 검색할 때 전체 테이블을 스캔하는 것은 비효율적이다.
인덱스를 사용하면 특정 조건에 맞는 데이터를 빠르게 찾을 수 있어 쿼리 성능이 향상된다.


인덱스의 종류

Primary Key Index

  • 각 테이블마다 하나의 기본키 인덱스가 있다.
  • 기본키는 테이블의 각 행을 고유하게 식별한다.
  • 자동으로 인덱스가 생성된다.
CREATE TABLE tbl_exam (
  column1 INT AUTO_INCREMENT PRIMARY KEY,
  column2 VARCHAR(100),
  column3 VARCHAR(100)
);

Unique Index

  • 유니크 인덱스는 열의 값이 고유해야 함을 보장한다.
  • 중복된 값이 들어올 수 없다.
CREATE UNIQUE INDEX idx_unique ON tbl_exam (column
);

Regular Index

  • 중복된 값이 허용되는 인덱스이다.
  • 특정 열의 값을 빠르게 검색하기 위해 사용된다.
CREATE INDEX idx_regular ON tbl_exam (column);

Composite Index

  • 두 개 이상의 열을 조합하여 만든 인덱스이다.
  • 다중 열 조건의 검색 속도를 향상시킨다
CREATE INDEX idx_composite ON tbl_exam (column1, column2);

인덱스 주의사항

인덱스의 비용

  • 인덱스를 생성하면 테이블의 데이터를 삽입 업데이트, 삭제할 때 인덱스도 함께 관리해야 하므로 성능이 저하될 수 있다.
  • 그러므로 너무 많은 인덱스를 생성하는 것은 피해야 한다.

적절한 인덱스 선택

  • 자주 검색되는 열이나 조인에 사용되는 열에 인덱스를 생성하는 것이 좋다.
  • 인덱스를 너무 남용하지는 말아야 한다.
  • 쿼리 실행 계획을 확인하고 인덱스 사용 여부를 분석하는 것이 좋다.

정보처리기사를 공부하면서 인덱스를 당연히 배웠지만 정확히 왜 사용되는지 어떻게 써야 하는지 등 깊게 생각해보지 못했는데 개발 공부를 하면서 성능 관리의 중요성을 깨닫고 가볍게 정리해보았다.

profile
핑계 대지 말자

0개의 댓글