ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MySQL] 조인 관련 주의사항 (3)
    @ 17. 1 ~ 18/DB 2018. 6. 28. 23:08

    MySQL 조인 처리에서 특별히 주의해야할 부분은 

    1. 실행 결과의 정렬순서

    2. INNER JOIN과 OUTER JOIN의 선택

    2가지 정도이다.


    조인 실행 결과의 정렬 순서

    일반적으로 조인으로 쿼리가 실행되는 경우, 드라이빙 테이블로부터 레코드를 읽는 순서가 전체 쿼리의 결과 순서에 그대로 적용되는 것이 일반적

    이는 네스티드-루프 조인 방식의 특징이기도 하다.

    SELECT de.dept_no, e.emp_no, e.first_name

    FROM dept_emp de, employees e

    WHERE e.emp_no=de.emp_no

    AND de.dept_no='d005';

    실행 계획은 아래와 같다

     id

     select_type

     table

     type

     key

     key_len

     ref

     rows

     Extra

     1

     SIMPLE

     de

     ref

     PRIMARY

     12

     const

     55555

    Using where;

    Using index

     1

     SIMPLE

     e

     eq_ref

     PRIMARY

    4

     de.emp_no

     1

     

    dept_emp 테이블을 검색한 결과는 dept_no 칼럼 순서대로 정렬되고 다시 emp_no로 정렬되어 반환된다는 것을 예상할 수 있다.

    그런데 이 쿼리의 WHERE 조건에 dept_no='d005'로 고정되어 있으므로 emp_no로 정렬된 것과 같다.

    (고정되어있으니까 신경안쓰고 WHERE 조건에 비중을 두고 보면 그렇다는것)


    근데 이런 순서가 옵티마이저가 선택한거지 다른 선택이면 결과가 보장되지 않는다.




    '@ 17. 1 ~ 18 > DB' 카테고리의 다른 글

    [MySQL] 실행계획 & select_type  (0) 2018.07.01
    [MySQL] 조인 (2)  (0) 2018.06.28
    [MySQL] 테이블 조인 (1)  (0) 2018.06.26
    인덱스 관련  (0) 2018.02.27
    각 키 설명  (0) 2018.02.27
Designed by Tistory.