RealMysql 8.0 1권을 읽던 중 이해되지 않는 부분이 있어 질문을 남깁니다.
책 303p에 아래와 같은 내용이 있습니다.
SELECT * FROM tb_test1 t1, tb_test2 WHERE t1.col1 = t2.col1 ORDER BY t1.col2 LIMIT 10;
tb_test1의 레코드가 100건이고, tb_test2테이블의 레코드가 1000건(tb_test 레코드 1건당 tb_tesst2의 레코드가 10건씩 존재한다고 가정), 두 테이블의 조인결과는 전체 1000건이라고 가정
정렬방법 | 일겅야 할 건수 | 조인횟수 | 정렬해야할 대상건수 |
인덱스 사용 |
tb_test : 1건 tb_test2: 10건 |
1번 | |
조인의 드라이빙테이블만 정렬 |
tb_test : 100건 tb_test2: 10건 |
1번 | |
임시 테이블 사용 후 정렬 |
tb_test : 100건 tb_test2: 1000건 |
100번 (tb_test1 테이블의 레코드 건수만큼 조인 발생 |
이때 "조인의 드라이빙 에티블만 정렬"의 조인횟수가 1번인 게 이해가 되지 않습니다. 조인 횟수는 드라이빙 테이블의 레코드에 영향을 받는 것으로 이해하고 있는데 이 경우 조인횟수가 100건이 되어야 하는 게 아닌지 궁금합니다.