본문 바로가기

개발/BACK

[MYSQL] 컬럼 INDEX 추가, 삭제하기

728x90

테이블의 데이터가 방대해질수록 쿼리 속도는 느려질 수 밖에 없다.

 

데이터베이스에서 데이터를 찾을 때는, 첫번째 데이터부터 순차적으로 데이터를 찾는다. 

 

특정 값을 기준으로 index가 생성되면, 이러한 데이터 서치 속도를 높여줄 수 있다.

 

하지만 index로 생성된 컬럼이 포함된 테이블이 등록,수정 또는 삭제 되면 인덱스도 함께 수정해줘야하기 때문에, 주로 조회 목적

으로 생성된 테이블을 서치할 때, index를 설정하자.

 


 

또한, index가 너무 많이 설정되어도 문제다.

 

index가 추가될 때마다 Row를 등록할 때마다 index 값도 추가되기 때문에, 오히려 쿼리 속도가 느려질 수 있다는 얘기다.

 

필요한 경우에, 필요한 인덱스만 추가하도록 하자.

 

 

기존 테이블 컬럼에 INDEX 추가하기

 

1
ALTER TABLE tb_user ADD INDEX idx (user_cd, user_name);
cs

tb_user : 테이블 명

idx : INDEX 명 

user_cd,user_name : 컬럼 명 - 여러 개의 컬럼에 추가할 수도 있다. 

 

 

기존 테이블 컬럼 INDEX 삭제하기

 

1
ALTER TABLE tb_user DROP INDEX idx;
cs

idx : INDEX 명

tb_user : 테이블 명

 

 

테이블 생성 시, INDEX 생성하기

1
2
3
4
5
6
7
8
CREATE TABLE `tb_user` (
       `user_id` varchar(5NOT NULL,
       `user_name` varchar(20NOT NULL,
       `user_age` varchar(20NOT NULL,
        PRIMARY KEY(user_id),
       INDEX `idx` (`user_name`)
     );
 
cs

 

 

728x90