앱)조인 쿼리 튜닝
조인을 할때
각각 테이블에 ON절에 조인조건을 쓰게 되어 있음
보통의 개발자는 각각 테이블이 조인되는 ON절과 조인이 된 후의 WHERE절의 조건을 혼용해서 쓰게 되어서 어떨때는 쿼리의 성능이 많이 떨어질 경우가 있음
게다가 INNER JOIN을 할 경우 ON절을 쓰지 않고 WHERE절에 ON절의 내용을 쓰는 경우가 종종 있음
조인튜닝을 할때
1)ON절을 반드시 쓰도록 함
2)ON절에 해당 테이블과의 조인될때 필요한 조인조건과 연산되어야 하는 조건을 모두 써줌
EX)A와 B테이블의 조인한다면
ON절에 A테이블.조인컬럼 = B테이블.조인컬럼 이것도 써줘야 하지만 A테이블.DEL_FG = 'N' 이나 B테이블.DEL_FG = 'N' 등과 같은 WHERE절 써줘야 할것도 해당 조인시에는 ON절에 모두 기록함
3)조인쿼리의 WHERE절에는 모든 테이블과 조인이 된 후에 필터링할 조건을 써줘야 함
이렇게만 해도 조인 성능이 많이 올라감
왜냐면 조인쿼리에는 1)ON절이 실행 2)WHERE절이 실행 되기 때문임
각각 테이블에 ON절에 조인조건을 쓰게 되어 있음
보통의 개발자는 각각 테이블이 조인되는 ON절과 조인이 된 후의 WHERE절의 조건을 혼용해서 쓰게 되어서 어떨때는 쿼리의 성능이 많이 떨어질 경우가 있음
게다가 INNER JOIN을 할 경우 ON절을 쓰지 않고 WHERE절에 ON절의 내용을 쓰는 경우가 종종 있음
조인튜닝을 할때
1)ON절을 반드시 쓰도록 함
2)ON절에 해당 테이블과의 조인될때 필요한 조인조건과 연산되어야 하는 조건을 모두 써줌
EX)A와 B테이블의 조인한다면
ON절에 A테이블.조인컬럼 = B테이블.조인컬럼 이것도 써줘야 하지만 A테이블.DEL_FG = 'N' 이나 B테이블.DEL_FG = 'N' 등과 같은 WHERE절 써줘야 할것도 해당 조인시에는 ON절에 모두 기록함
3)조인쿼리의 WHERE절에는 모든 테이블과 조인이 된 후에 필터링할 조건을 써줘야 함
이렇게만 해도 조인 성능이 많이 올라감
왜냐면 조인쿼리에는 1)ON절이 실행 2)WHERE절이 실행 되기 때문임
'백엔드개발 > 데이터베이스' 카테고리의 다른 글
앱)특정 컬럼에 따라 Count하는 쿼리 mybatis dao (0) | 2018.11.01 |
---|---|
앱)아는만큼 보이는 데이터베이스 설계과 구축 요약3 (0) | 2018.10.29 |
이코리아텍 실습과 함께하는 데이터베이스 MYSQL 강의 정리3/3 (0) | 2018.10.09 |
이코리아텍 실습과 함께하는 데이터베이스 MYSQL 강의 정리2/3 (0) | 2018.10.08 |
이코리아텍 실습과 함께하는 데이터베이스 MYSQL 강의 정리1/3 (0) | 2018.09.29 |