-
Mysql Index 사용방법Full-Stack/Back-end 2008. 8. 3. 19:08
MySQL Index
WHERE절에서 조건으로 쓰이는 컬럼을 인덱스로 만드는 것이 좋고, AND 연산으로 검색되는 컬럼들은
모두 하나의 인덱스로 만드는 것이 좋다.
Index 생성
- 테이블 생성시
mysql> 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 조건으로 검색할 때 인덱스가 작동한다.
- 테이블 생성 후 추가
mysql> ALTER TABLE tablename ADD INDEX index_name(col1, col2,...);
index_name으로 인덱스 추가.
인덱스 정보 보기
mysql> SHOW INDEX FROM tablename;
인덱스 삭제
mysql> ALTER TABLE tablename DROP INDEX index_name;
[출처] [펌]MySQL Index|작성자 따라쟁이
Index 관련 SQL statement
alter table test drop index num;
create index num_idx on tablename(field(length));
alter table t add index t_idx(id)
alter table table_name add index(col_name,...) ;- create table문
create table test(
test1 int not null auto_increment primary key(test1), /* 프라이머리키 설정 */
test2 char(1),
test3 char(2),
index idx_test2(test2), /* test2필드를 idx_test2라는키이름으로 인덱스설정 */
index idx_test23(test2,test3) /*test2,test3필드를 idx_test23이라는 키이름으로 복합인덱스설정 */
);show index 명령시 ( show index from table_name )
컬럼이름 : 설명Table : 테이블이름.
Non_unique : unique 여부. (0이면 unique 한값이구, 1이면 아님다.)
Key_Name : 인덱스키 이름.
Seq_In_Index : 인덱스안의 칼럼순서 (흠. 맞는건지..여튼 인덱스안의 컬럼순서번호 라는군요. 첨시작할시는 1)
Column_Name : 컬럼이름.
Collation : 인덱스가 소트가 되어있는가인데...A는 순차적이고 NULL은 안소트라는군요..
Cardinality : 인덱스의 유니크한값이라고 되어있네요!! 업데이트는 isamchk -a 일때라고 하는데...흠 (-,.-)a
Sub_part : 인덱스된 문자의 번호...인덱스중에서 부분문자열로 인덱스한거 그거말하나바여 ^^;;
Packed : 팩되었나?
Comment : 헉! 코멘트까졍?
댓글
- 테이블 생성시