일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- windows server
- 시스템 엔지니어
- Microsoft Azure
- 시스템엔지니어
- Docker
- cloud engineer
- windows
- Azure
- 클라우드엔지니어
- 네트워크
- 시트릭스
- aws
- 리눅스마스터1급
- Microsoft 365
- Entra ID
- It
- Linux
- 리눅스
- 컴퓨터
- 메일보안
- SE
- Server
- 클라우드
- Azure AD
- 가상화
- Exchange Online
- Microsoft
- network
- 그룹정책
- cloud
- Today
- Total
Cloud System Engineer
데이터 베이스 인덱스 본문
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 |