데이터를 빠르게 찾을 수 있게 하는 역할을 한다.
SHOW INDEX FROM [테이블_이름]
MySQL에서는 보조 인덱스, 클러스터형 인덱스 2개 있다.
테이블당 한 개만 생성 가능 (PRIMARY KEY)
행 데이터를 인덱스로 지정한 열에 맞춰서 자동 정렬한다.
테이블당 여러 개 생성 가능 ( UNIQUE)
✔️ PRIMARY KEY
로 지정한 열은 클러스터 형 인덱스가 생성된다.
✔️UNIQUE NOT NULL
로 지정한 열은 클러스터 형 인덱스가 생성된다.
✔️UNIQUE (NULL)
로 지정한 열은 보조 인덱스가 생성된다.
✔️PRIMARY KEY
와 UNIQUE NOT NULL
이 있으면 PRIMARY KEY
로 지정한 열이 우선 클러스터 형 인덱스가 된다.
(여기서 UNIQUE NOT NULL
로 지정한 열은 보조 인덱스 역할을 한다.)
✔️PRIMARY KEY로 지정한 열로 데이터가 오름차순 정렬된다.
-- 기본키 기준으로 데이터 정렬 실습
CREATE DATABASE IF NOT EXISTS testdb;
USE testdb;
DROP TABLE IF EXISTS usertbl;
CREATE TABLE usertbl (
userID char(8) NOT NULL PRIMARY Key,
name varchar(10) not null,
birthYear int not null,
addr nchar(2) not null);
INSERT INTO usertbl VALUES('LSG','이승기',1987,'서울');
INSERT INTO usertbl VALUES('KBS','김범수',1979,'경남');
INSERT INTO usertbl VALUES('KKH','김경호',1971,'전남');
INSERT INTO usertbl VALUES('JYP','조용필',1950,'경기');
INSERT INTO usertbl VALUES('SSK','성시경',1979,'서울');
SELECT * FROM usertbl;
데이터가 입력되는 순서와 상관없이 기본키로 지정한 열의 데이터를 기준으로 오름차순 정렬하여 데이터가 저장된다.
-- PRIMARY KEY가 클러스터 형 우선 순위다
create table tbl1 (
a int PRIMARY KEY, -- 클러스터형 인덱스
b int UNIQUE, -- 보조 인덱스 역할
c int UNIQUE not null, -- 보조 인덱스 역할
d int );
show index from tbl1;