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

MySQL에서 설정된 인덱스 확인하는 방법 – SHOW INDEX 명령어 가이드

MySQL에서 인덱스 확인하기

MySQL에서 테이블에 설정된 인덱스를 확인하려면 SHOW 명령어를 사용하면 됩니다. 이 명령어 하나만으로 해당 테이블에 생성된 모든 인덱스의 상세 정보를 손쉽게 조회할 수 있습니다.

기본 문법

인덱스를 조회하는 기본 문법은 다음과 같습니다.

show index from yourTableName;

1단계: 예제 테이블 생성

먼저 실습에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName varchar(20),
    LastName varchar(20)
    );
Query OK, 0 rows affected (0.46 sec)

2단계: 인덱스 생성하기

다음 쿼리를 실행하여 Id와 FirstName 두 컬럼으로 구성된 복합 인덱스를 생성합니다.

mysql> create index id_FirstName on DemoTable(Id,FirstName);
Query OK, 0 rows affected (0.52 sec)
Records : 0 Duplicates : 0 Warnings : 0

3단계: 설정한 인덱스 조회하기

MySQL에서 설정한 인덱스를 확인하려면 아래 쿼리를 실행합니다.

mysql> show index from DemoTable;

쿼리를 실행하면 인덱스 정보가 담긴 다음과 같은 결과가 출력됩니다.

+--------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Table        | Non_unique | Key_name     | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
+--------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| DemoTable    | 0          | PRIMARY      | 1            | Id          | A         | 0           | NULL     | NULL   |      | BTREE      |         |               | YES     |
| DemoTable    | 1          | id_FirstName | 1            | Id          | A         | 0           | NULL     | NULL   |      | BTREE      |         |               | YES     |
| DemoTable    | 1          | id_FirstName | 2            | FirstName   | A         | 0           | NULL     | NULL   | YES  | BTREE      |         |               | YES     |
+--------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
3 rows in set (0.26 sec)

출력 결과 주요 컬럼 설명

결과 화면의 각 컬럼이 의미하는 바는 다음과 같습니다.

  • Table: 인덱스가 생성된 테이블 이름
  • Non_unique: 0이면 고유(UNIQUE) 인덱스, 1이면 중복 값을 허용하는 일반 인덱스
  • Key_name: 인덱스 이름 (PRIMARY는 기본 키를 의미)
  • Seq_in_index: 복합 인덱스 내에서 해당 컬럼의 순번
  • Column_name: 인덱스가 적용된 컬럼 이름
  • Collation: 인덱스 정렬 방식 (A는 오름차순)
  • Cardinality: 인덱스에 저장된 고유 값 개수의 추정치
  • Index_type: 인덱스 유형 (BTREE, HASH 등)
  • Visible: 옵티마이저가 해당 인덱스를 사용할 수 있는지 여부

위 예제의 실행 결과를 보면, PRIMARY 인덱스는 테이블 생성 시 Id 컬럼에 자동으로 만들어진 기본 키이며, id_FirstName은 Id와 FirstName 두 컬럼으로 구성된 복합 인덱스임을 확인할 수 있습니다. Seq_in_index 값이 각각 1과 2로 표시되는 것도 복합 인덱스의 컬럼 순서를 나타내는 것입니다.