TIL

9.3(1) MRR과 블록 네스티드 루프 조인

9.3.1 옵티마이저 스위치 옵션

-- // MySQL 서버 전체적으로 옵티마이저 스위치 설정
SET GLOBAL optimizer_switch='indexmerge=on, index_merge_union=on,...';

-- // 현재 커넥션의 옵티마이저 스위치만 설정
SET SESSION optimizer_switch='index_merge=on, index_merge_union=on,...';

-- // 현재 쿼리에만 설정
SELECT /*+ SET_VAR(optimizer_switch='condition_fanout_filter=off')*/
...
FROM ...

MRR과 배치 키 엑세스(mrr & batched_key_access)

블록 네스티드 루프 조인(block_nested_loop)

MySQL 8.0.18부터 해시 조인 알고리즘에 도입되어 8.0.20 버전부터는 블록 네스티드 루프 조인이 더 이상 사용되지 않고 해시 조인 알고리즘이 대체되어 사용된다.