티스토리 뷰
이 쿼리를 보면
full table scan이다
처음 행부터 마지막 행까지 다 본다
단점: slow
Indexing이라는 것이 있으면
전체 체크를 안해도 빠르게 찾을 수 있다
most of database has this index
이런 느낌으로
index가 있으면 전체 데이터를 안 탐색하고
빠르게 찾을 수 있다
index is not bianry tree
It is B-Tree
Duration: Query를 처리하는 시간
Fetch: Result를 가져와서 보여주는 시간
EXPLAIN SELECT * FROM employees WHERE last_name = 'Peron';
EXPLAIN 키워드를 추가하면 추가적인 정보를 얻을 수 있다
possible_keys: 이 쿼리에 적합한 index 목록
key: index for this query
인덱스 생성 쿼리
CREATE INDEX last_name_index ON employees (last_name);
SELECT * FROM employees WHERE last_name= 'Peron';
인덱스 생성 전과 생성 후를 비교해보겠다
인덱스 생성 전 SELECT 쿼리는 0.1초정도 걸린다
인덱스 생성 후 SELECT 쿼리는 0.000초가 걸린다
인덱스 생성 전엔 전체 행을 탐색한다
인덱스 생성 후엔 해당 인덱스 행만 탐색한다
인덱스에 group by 적용했을때 결과
EXPLAIN SELECT last_name, COUNT(last_name) AS total
FROM prac1108.employees
GROUP BY first_name;
group by는 index를 생성해도 전체 행에 대해 수행하기때문에
결과가 이렇게 나온다
조회의 성능을 비교했을때
index가 있고 없고의 성능 차이가 엄청나다는 것을 깨달았다
다만 조회를 제외한
삽입, 수정, 삭제에서는 성능이 떨어져서
인덱스가 많을 수록 좋은 것은 아니다
'개념 > 데이터베이스시스템' 카테고리의 다른 글
Partition BY vs GROUP BY (0) | 2024.08.22 |
---|---|
Advanced Queries (0) | 2022.10.26 |
Intermediate SQL QUIZ (0) | 2022.10.26 |
Basic SQL (0) | 2022.10.26 |
Relational Model (0) | 2022.10.26 |
- Total
- Today
- Yesterday
- 데이터 3법
- oauth2.0
- git
- 데이터3법
- 인프콘2024
- 오픈소스
- SpringBoot
- authorization code
- oauth
- authorization_code
- bfs
- 리눅스
- 로스트아크 캐릭터
- git commit 수정
- infcon 2024
- 2024인프콘
- SQL
- Android Studio
- 데이터베이스
- 클로아
- CSS
- DML
- 우분투
- kloa
- DDL
- git 예전 커밋 수정
- html #웹 #웹사이트 #플레이리스트
- html
- javascript
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |