8장 인덱스

2024. 7. 1. 19:19BOOKS/Real MySQL 8.0

문제 1. (dept_no, emp_no) 로 구성된 인덱스가 있을 때 select * from employees where emp_no > 2000; 을 실행했더니 인덱스 풀 스캔 방식을 사용했습니다. 그 이유는 무엇일까요.

조건절에 첫번째 칼럼이 아닌 두번째 칼럼을 사용했기 때문에 인덱스 풀 스캔 방식을 사용

문제 2.(dept_no, emp_no) 로 구성된 인덱스가 있을 때 select * from employees where emp_no > 2000; 을 실행했더니 인덱스 스킵 스캔 방식을 사용했습니다. dept_no 의 유니크 값은 {1, 2} 입니다. 옵티마이저는 내부적으로 어떤 최적화 과정을 실행했을지 설명해주세요.

select * from employees where dept_no = 1 and emp_no > 2000;
select * from employees where dept_no = 2 and emp_no > 2000;

문제 3. n-gram 알고리즘이란?

키워드를 검색해내기 위한 인덱싱 알고리즘
단어를 n글자씩 잘라서 토큰으로 만들어 인덱싱함
단어 : apple, n : 2 => ap, pp, pl, le

문제 4. InnoDB에서 프라이머리키를 명시하는 것이 좋은 이유

InnoDB는 프라이머리키를 명시하지 않으면 자동으로 프라이머리 키값을 추가하는데 이 값은 사용자가 사용할 수가 없다.
프라이머리 키는 데이터를 빠르게 찾는데 도움이 되는데 사용자가 프라이머리 키를 알지 못하므로 이런 이득을 얻을 수 없다.

'BOOKS > Real MySQL 8.0' 카테고리의 다른 글

13장 파티션  (0) 2024.07.01
10장 실행계획  (0) 2024.07.01
9장 옵티마이저와 힌트  (0) 2024.07.01
5장 트랜잭션  (0) 2024.07.01
4장 아키텍처  (0) 2024.07.01