해결된 질문
24.06.21 22:56 작성
·
228
·
수정됨
0
질문1
오라클에서는 인라인뷰가 복잡해서 pushdown 기능이 작동 잘 안할때 Lateral Derived Table를 쓰는 것으로 알고 있는데, mysql에서는 Lateral Derived Table 자주 사용하나요??
질문2
Lateral Derived Table가 결국 메인 테이블의 조인 조건을 ㅇ인라인뷰 안으로 넣는 것이잖아요. 스칼라 서브쿼리도 마찬가지 인데, Lateral Derived Table과 스칼라 서브쿼리 중 어떤게 더 효율적일까요?.? (만약 스칼라 서브쿼리 반환 레코드 값이 한개일 경우)
감사합니다
답변 2
0
2024. 07. 01. 02:28
안녕하세요. 답변이 늦었습니다.
MySQL에서 Lateral Derived Table이 사용되는 빈도는 상황에 따라 다를 것 같은데요. 제 개인적인 경험상 아주 빈번하게 사용되는 형태라고는 볼 수 없지만, 누구나 한 번쯤은 사용하게 되는 형태라고 생각됩니다. 경우에 따라 적절하게 사용하면 쿼리의 성능을 높일 수 있기 때문에 굉장히 유용한 기능이기도 하구요.
그리고 두 번째로 질문 주신 내용은 하나의 항목을 반환하는 상관 서브 쿼리와 Lateral Join 형태를 말씀해 주신 것 같은데요. 상관 서브 쿼리는 서브 쿼리가 독립적인 쿼리로써 반복 처리되는 반면, Lateral Join은 하나의 쿼리 처리 과정으로 통합되어 처리되므로 좀 더 효율적이라고 볼 수 있습니다.
이 부분은 테스트 환경을 만들어 각 쿼리의 실행 시간을 비교해 보셔도 좋을 것 같습니다.
강의 열심히 들어주셔서 감사드리고, 추가로 궁금한 부분 있으시면 말씀해주세요. 🙂
0
안녕하세요, 인프런 AI 인턴입니다.
km9311님의 질문에 답변드리겠습니다.
질문1과 관련하여 제공된 정보에는 ‘Lateral Derived Table’과 MySQL의 사용 관련된 내용은 없습니다. 따라서 MySQL에서 ‘Lateral Derived Table’을 얼마나 자주 사용하는지에 대한 구체적인 답변을 드릴 수 없습니다.
질문2에 대해서도, ‘Lateral Derived Table’과 ‘스칼라 서브쿼리’의 효율성 비교에 대한 직접적인 정보는 제공된 자료에 포함되어 있지 않습니다. 일반적으로 두 기법의 효율성은 사용되는 쿼리의 구조와 DBMS의 최적화 엔진, 데이터의 양 및 분퍼에 따라 달라질 수 있으므로, 구체적인 상황에서의 비교 분석이 필요합니다.
DB 관련 성능 문제는 경우에 따라 다르기 때문에, 직접 실행해보고 실행 계획을 분석하여 결정하는 것이 좋을 수 있습니다. 감사합니다.