티스토리 뷰
9.4.2 옵티마이저 힌트
[1] 종류
영향 범위에 따라 4가지로 나뉜다.
- 인덱스: 특정 인덱스의 이름을 사용할 수 있는 힌트
- 테이블: 특정 테이블의 이름을 사용할 수 있는 힌트
- 쿼리 블록: 특정 쿼리 블록에만 영향
- 글로벌: 모든 쿼리에 영향
(쿼리 블록? SELECT로 시작하는 서브쿼리 영역)
힌트의 사용위치는 모두 동일하다.
[2] MAX_EXECUTION_TIME
유일하게 쿼리 실행 계획에 영향이 없는 힌트. 단순히 쿼리의 최대 실행시간을 설정하는 힌트이다.
지정된 시간을 초과하면 쿼리는 실패한다.
[3] SET_VAR
SET_VAR 힌트로 쿼리 실행 계획에 영향을 주는 시스템 변수를 조정할 수 있다. 하지만 모든 시스템 변수를 조정할 수는 없다.
기억해 둘 힌트.
[4] SEMIJOIN & NO_SEMIJOIN
세미조인의 여러 전략 중 어느 것을 선택할지 조정 가능한 힌트
세미조인의 힌트는 외부 쿼리가 아니라 서브 쿼리에 명시해야한다.
이외에도 여러 힌트가 있다. 필요해질 때 찾아보자.
'Real MySQL 8.0' 카테고리의 다른 글
[Real MySQL 8.0] 10.3 실행 계획 분석 (0) | 2023.02.18 |
---|---|
[Real MySQL 8.0] 10.3 실행 계획 분석 (0) | 2023.02.16 |
[Real MySQL 8.0] 9. 옵티마이저와 힌트 9.3.1.15 ~ (0) | 2023.02.11 |
[Real MySQL 8.0] 9. 옵티마이저와 힌트 9.3 ~ (0) | 2023.02.10 |
[Real MySQL 8.0] 9. 옵티마이저와 힌트(1) 9.3 ~ (0) | 2023.02.08 |