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

MySQL 데이터베이스에서 인덱스 조회하는 방법 (information_schema 활용법)

MySQL 데이터베이스의 인덱스 목록 확인하기

MySQL에서 특정 데이터베이스에 생성된 모든 인덱스 정보를 한눈에 확인하고 싶다면 information_schemastatistics 테이블을 조회하는 것이 가장 간편한 방법입니다. 이 테이블에는 서버 내 모든 테이블의 인덱스 관련 메타데이터가 저장되어 있습니다.

기본 조회 문법

인덱스를 확인하기 위한 기본적인 쿼리 문법은 다음과 같습니다.

select * from information_schema.statistics where table_schema = yourDatabaseName;

여기서 table_schema에는 인덱스를 확인하려는 데이터베이스 이름을 입력합니다.

실제 사용 예시

예를 들어 'web'이라는 데이터베이스의 인덱스 정보를 조회하려면 아래와 같이 쿼리를 작성합니다.

select * from information_schema.statistics where table_schema = 'web';

위 쿼리를 실행하면 'web' 데이터베이스에 속한 모든 테이블의 인덱스 정보가 한 번에 출력됩니다.

주요 결과 컬럼 설명

조회 결과에서 자주 확인하게 되는 주요 컬럼은 다음과 같습니다.

  • TABLE_NAME : 인덱스가 생성된 테이블의 이름
  • INDEX_NAME : 인덱스의 고유 이름
  • COLUMN_NAME : 해당 인덱스가 적용된 컬럼
  • NON_UNIQUE : 0이면 유니크(고유) 인덱스, 1이면 중복 값을 허용하는 일반 인덱스
  • SEQ_IN_INDEX : 복합 인덱스일 경우 해당 컬럼의 순번
  • CARDINALITY : 인덱스 컬럼의 고유 값 개수 추정치로, 높을수록 선택도가 좋음

특정 테이블의 인덱스만 확인하는 방법

데이터베이스 전체가 아니라 특정 테이블의 인덱스만 빠르게 확인하고 싶다면 SHOW INDEX 구문을 사용할 수도 있습니다.

SHOW INDEX FROM 테이블명;

두 가지 방법을 상황에 맞게 활용하면 데이터베이스 성능 튜닝이나 쿼리 최적화 작업 시 인덱스 구조를 손쉽게 파악할 수 있습니다.