사용자 도구

사이트 도구


database:mysql:index

문서의 이전 판입니다!


MySQL Index

WHERE절에서 조건으로 쓰이는 컬럼을 인덱스로 만드는 것이 좋고, AND 연산으로 검색되는 컬럼들은 모두 하나의 인덱스로 만드는 것이 좋다.

Index 생성

Table 생성시

CREATE TABLE tablename (id CHAR(13) NOT NULL,
passwd CHAR(8) NOT NULL,
name CHAR(8) NOT NULL,
email CHAR(64) NOT NULL,
INDEX (id)
);

id 컬럼에 대한 인덱스를 생성한다. 두 개 이상의 컬럼에 대해서도 인덱스를 생성할 수 있다.

INDEX(id, passwd)

id 컬럼과 passwd 컬럼을 AND 조건으로 검색할 때 인덱스가 작동한다.

Table 생성 후 추가

ALTER TABLE tablename ADD INDEX index_name(col1, col2,...);

index_name으로 인덱스 추가.

Index 정보 보기

SHOW INDEX FROM tablename;

Index 삭제

ALTER TABLE tablename DROP INDEX index_name;

Index Hint

Use Index

특정 인덱스를 타도록 가이드 한다.

SELECT id FROM DATA USE INDEX(TYPE)
WHERE TYPE=12345 AND level > 3
ORDER BY id

Ignore Index

특정 인덱스는 무시하고 다른 인덱스들을 대상으로 최적화한다.

SELECT id FROM DATA IGNORE INDEX(PRIMARY)
WHERE TYPE=12345 AND level > 3
ORDER BY id

참조

database/mysql/index.1423375721.txt.gz · 마지막으로 수정됨: 2015/02/08 15:08 저자 kwon37xi