Cloud System Engineer

데이터 베이스 인덱스 본문

mysql/MySQL

데이터 베이스 인덱스

클라우드 엔지니어 2021. 1. 25. 01:22

1. 데이터 베이스 인덱스 

 

create database shop_db; 

 

use shop_db;

 

indexTBL 라는 데이블을 생성해줍니다. 

 

first_name varchar() , last_name varchar() , hire_date data);  열 생성

 

insert into indextbl 에 각 열에대한 내용을 삽입해줍니다.

 

그후 결과는 select * from indextbl; 

 

통해  확인합니다.

 

# select * from indextbl where(조건문)  first_name = 'jeong' ; //  indextbl 이라는 테이블에서 firstname 에서 jeong 이라는 성을 가진 이름을 찾아라

 

 

visual explain 을 참고해보면

 

full table scan 이라 뜬 것이다.  full table scan 이란?

테이블 전체를 다 찾아 본 것이다.

 

즉  first_name = jeong 을 500 명 으로 제한된 곳에서  전체를 찾아 본 것이다.

 

책에도 찾고싶은 단락이 있으면 앞 뒤 에있는 index(목차) 를 보면 훨씬더 수월하게 찾을 수 있다.

 

데이터 베이스도 500 은 작은 수치 일 수도 있지만, 데이터 규모가 1만 10만 100만이 넘어가게되면 속도가 느려지게된다.

 

그래서 최적의 경로를 설정해 주어야 한다.

 

CREATE index idx_indextbl_firstname on indextbl(first_name); 추가해주고 실행하고 

 

 

 

다시  visual explain 을 참고해보면 

 

이번에는 non-unique key lookup 이라 보인다.

 

이 말은 

 

인덱스를 생성해주지않으면 전체 페이지를 검색하지만

idx_indextbl_firstname on indextbl(first_name);

이름만으로 어느테이블의 어느열에 설정된 인덱스를 이정해주면

더 짧은 경로로 검색해서 찾아볼 수 있다는 점이다.

 

 

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

select 문  (0) 2021.01.29
사용자 관리  (0) 2021.01.28
데이터 베이스 모델링  (0) 2021.01.25
데이터 베이스 백업  (0) 2021.01.25
My SQL 시작  (0) 2021.01.21