1) 연산비용추가
서브쿼리는 뷰와 마찬가지로 서브쿼리는 가상의 테이블을 만드는 것
그렇기 때문에 서브쿼리에 접근할 때마다 SELECT 구문에 접근하여 데이터를 만들게 되고,
이로 인해 연산 비용이 늘어나게 됩니다.
서브쿼리가 간단할 경우엔 무리가 없지만 서브쿼리 안의 내용이 복잡해질수록 비용은 더욱 늘어납니다.
2) 최적화를 받을 수 없다.
서브쿼리와 테이블이 가지는 큰 차이점은 서브쿼리엔 메타 정보가 담겨있지 않다는 점
명시적인 제약이나 인덱스가 작성되어있지 않다는 것
그렇기 때문에 옵티마이저가 쿼리에 접근하고 해석할 때 필요한정보를 얻을 수 없게 됩니다.
이는 내부적으로 복잡한 연산을 수행하거나 결과 크기가 큰 서브쿼리를 사용할 때 성능의 문제가 발생시키는 원인이 됩니다.
3) 쿼리가 복잡해진다.
서브쿼리의 생김새를 다시 한번 살펴보겠습니다.