데이터베이스의 테이블의 인덱스는 쉽게 이야기하면 해당 컬럼을 그룹화하여 , 조회시 더 빨리 할 수 있도록 하는 역할을 한다.
( where 절이 있는 쿼리문에서 사용한다. )
만약에 만개의 데이터가 들어있는 테이블이 있다고 가정하면 , 일반적으로는 , 첫번째 데이터부터 만번째 데이터까지 순
서대로 읽어내려오면서 where 절에 있는 조건에 맞는 것들을 scanning해서 select한다고하면 ,
인덱스를 설정하면 , 만개의 데이터 중 where 절에 있는 조건이 맞는 것들만 따로 추려서 해당 데이터를 찾는다.
이러한 과정으로 데이터를 찾기때문에 좀 더 빠른 데이터 찾기가 가능하다.
****
SQL 쿼리중 where 절이 있는 쿼리를 할때는
scanning방식은 전체데이터를 다 스캔하기 때문에 처리속도가 느리다. 따라서 index를 이용해서 처리한다.
****
인덱스는 , 테이블 생성시 primary key로 설정된 컬럼과 , unique로 설정된 컬럼은 자동으로 인덱스로 설정된다.
이렇게 자동으로 설정되지 않아도 , 해당 테이블의 인덱스 설정에서 인덱스설정 추가가 가능하다.
찾아야 될 조건 ( where절의 조건) 이 인덱스로 설정되어 있지 않은 컬럼이라면 , 인덱스로 설정 후 조회가 가능하다.
위의 테이블은 id 컬럼이 프라이머리 키로 설정되어있다.
이 테이블은 id컬럼이 인덱스로 설정 되어 있을 것이다.
아래의 Indexes 란으로 확인 하니 자동으로 들어가있다.
user_id 컬럼을 인덱스 추가해보겠다.
위와 같은 형태로 인덱스로 설정하였다.
'IT 프로그래밍 관련 > MySQL' 카테고리의 다른 글
MySQL null 을 채워주는 ifnull함수 (0) | 2021.03.17 |
---|---|
MySQL 여러 테이블에서 foreign key 사용법 (1) | 2021.03.17 |
MySQL 정규화, 테이블의 연결 join (0) | 2021.03.17 |
MySQL case end 조건식 (0) | 2021.03.17 |
MySQL에서의 in 과 not in (0) | 2021.03.17 |
댓글