클러스터형 인덱스 : PK로 지정하면 자동 생성 및 정렬. 테이블 당 1개만 생성
CREATE TABLE table1(
col1 INT PRIMARY KEY,
col2 INT,
col3 INT
)
SHOW INDEX FROM table1;
→ PK로 지정되면 한/영 자동정렬
보조 인덱스 : 고유 키로 지정하면 자동 생성, 자동 정렬X
CREATE TABLE table2(
col1 INT PRIMARY KEY,
col2 INT UNIQUE,
col3 INT UNIQUE
)
SHOW INDEX FROM table2;
→ 보조 인덱스로 지정되어도 정렬X
인덱스 생성 및 제거
# PK, 고유키로 생성되는 인덱스가 아닌 단순 보조 인덱스 생성 -> 중복 허용됨
CREATE [UNIQUE] INDEX 인덱스_이름
ON 테이블명 (열이름) [ASC | DESC];
DROP INDEX 인덱스명 ON 테이블명;
인덱스 적용
ANALYZE TABLE 테이블명;
인덱스는 열 단위에 생성되며 WHERE절에서 사용되는 열에 인덱스를 만들어야 한다. 인덱스는 데이터베이스를 바꾸는 것이 아닌 SELECT를 효과적으로 하기 위해 사용되는 것
SQL에서 자동으로 판단해 인덱스를 사용하지 않을 수 있음. WHERE절에서 연산을 수행하면 인덱스를 사용하지않음.