본문 바로가기
IT 프로그래밍 관련/MySQL

데이터베이스의 테이블 인덱스 생성

by 지나는행인 2021. 4. 12.
728x90

데이터베이스의 테이블의 인덱스는 쉽게 이야기하면 해당 컬럼을 그룹화하여 , 조회시 더 빨리 할 수 있도록 하는 역할을 한다.

 

( where 절이 있는 쿼리문에서 사용한다. )

 

만약에 만개의 데이터가 들어있는 테이블이 있다고 가정하면 ,  일반적으로는 , 첫번째 데이터부터 만번째 데이터까지 순

 

서대로 읽어내려오면서 where 절에 있는 조건에 맞는 것들을 scanning해서 select한다고하면 ,

 

인덱스를 설정하면 , 만개의 데이터 중 where 절에 있는 조건이 맞는 것들만 따로 추려서 해당 데이터를 찾는다.

 

이러한 과정으로 데이터를 찾기때문에 좀 더 빠른 데이터 찾기가 가능하다.

 

****

SQL 쿼리중 where 절이 있는 쿼리를 할때는
scanning방식은 전체데이터를 다 스캔하기 때문에 처리속도가 느리다. 따라서 index를 이용해서 처리한다.

****

 

인덱스는 , 테이블 생성시 primary key로 설정된 컬럼과 , unique로 설정된 컬럼은 자동으로 인덱스로 설정된다.

 

이렇게 자동으로 설정되지 않아도 , 해당 테이블의 인덱스 설정에서 인덱스설정 추가가 가능하다.

 

찾아야 될 조건 ( where절의 조건) 이 인덱스로 설정되어 있지 않은 컬럼이라면 , 인덱스로 설정 후 조회가 가능하다.

 

* memo 테이블, id컬럼이 primary key로 설정 됨

위의 테이블은 id 컬럼이 프라이머리 키로 설정되어있다.

 

이 테이블은 id컬럼이 인덱스로 설정 되어 있을 것이다.

* 기본 인덱스 설정

아래의 Indexes 란으로 확인 하니 자동으로 들어가있다.

 

user_id 컬럼을 인덱스 추가해보겠다.

 

* user_id 인덱스 추가 설정

위와 같은 형태로 인덱스로 설정하였다.

 

 

댓글