index는 해당 데이터를 쉽게 찾아볼수 있게 만들어주는 색인정도로 생각하면 될거 같다.

 

물론 index가 없어도 테이블의 모든 정보를 검색하면서 찾아낼 수 있지만, 

그건 내가 하는 간단한 테이블에서나 비슷한 성능을 낼 것이다.

나중에 수천, 수만개의 데이터들의 중에서 하나의 데이터를 찾기 위해 

그 많은 데이터를 돌린다는 거 자체가 무리일 것이다.

이를 해결 해주기 위해 사용하는게 index라고 알고 있으면 편할거 같다.

 

그럼 인덱스의 간단한 사용법을 알아보자

create table indexTBL (frist_name varchar(14), last_name varchar(16), hire_date date); insert into indexTBL select first_name, last_name, hire_date from employees.employees limit 500; select * from indexTBL; 
 
indexTBL 이라는 테이블을 생성했다. 이곳에서 이름이 'Mary' 인 사람을 조회해 보자
select * from indexTBL where first_name = 'Mary'; 
 
물론 이 경우에도 데이터가 500개 여서 그다지 많다고는 할수 없지만 
그래도 저 1개의 결과를 찾기 위해 500개의 데이터를 검색했다고 볼수 있다. 
 
이번에는 index를 생성해 보자
create index idx_indexTBL_firstname on indexTBL(first_name); 
 
이후에 위에 검색문을 다시 사용해 보면 작동하는 방식이 달라져 있다.(MySQL Community에서 확인가능) 
이렇게 index는 조회하는 양의 따라서 몇 배의 검색속도를 제공해 주기 때문에
데이터 양이 많을 경우 꼭 필요한 기능이다.

 

'SQL > mysql' 카테고리의 다른 글

트리거 (trigger)  (0) 2017.09.08
뷰 (view)  (0) 2017.09.07
서브 쿼리  (0) 2017.09.05
NULL & 별칭 정하기  (0) 2017.09.05
산술 연산자 및 연산순위  (0) 2017.09.05