Query Optimize ( Where절 순서, join 순서 )
- DB
- 2022. 6. 26. 23:37
쿼리를 작성하다보면 막연한 의문이 든다..
Where 조건을 작성하는 순서에 따라 성능에 영향을 미칠까?
혹은 INNER JOIN 순서가 성능에 영향을 줄까?
결론은 NO! 쿼리최적화 과정에서 순서를 맞춘다.
SELECT *
FROM member m
WHERE m.age <> 0
and (100/m.age > 0)
SELECT *
FROM member m
WHERE (100/m.age > 0)
and m.age <> 0
where절 순서는 query optimizer가 적절히 변경해준다.
0으로 나누어 에러를 발생하는 경우를 발생시켜도
알아서 쿼리 순서를 최적화 시켜 실행시켜준다!
SELECT *
FROM member as m
INNER JOIN organization as o
ON m.organizationID = o.organizationID
WHERE m.orgainzationID = 10
SELECT *
FROM organization as o
INNER JOIN member as m
ON o.organizationID = m.organizationID
WHERE o.orgainzationID = 10
INNER JOIN에서도 성능에 영향을 미치진 않는다!
쿼리 최적화가 조인 순서를 알아서 맞춰 준다.
(A_B)*C = A_(B*C) 결과가 같다는 집합의 영역으로 설명이 가능하다!
물론!
OUTER JOIN의 경우에는 쿼리 성능에 영향을 미칠수 있다!!
'DB' 카테고리의 다른 글
[noSql]Redis (0) | 2020.07.30 |
---|---|
[DB] Lock (0) | 2020.07.29 |
인덱스란? (0) | 2020.07.29 |