본문 바로가기
데이터베이스

12. 스칼라 서브쿼리

by 김마리님 2020. 4. 8.

서브쿼리는 select, from, where중 어디에 들어가는가에 따라 이름이 달라진다. 그 중 select 절에 붙는 서브쿼리를 스칼라 서브쿼리라고 한다.

스칼라 서브쿼리의 동작은 다음과 같다

1. 메인쿼리 실행

2. 스칼라 서브쿼리용 데이터를 메모리에 띄움

3. 값 도출

4. 다시 메인쿼리 실행

이 작업을 메인쿼리가 끝날 때 까지 실행한다.

 

from절에 내리게 될 경우 서브쿼리가 우선적으로 실행되기 때문에 값이 달라질 수 있다.

 

따라서, 스칼라 서브쿼리의 경우 메모리에 미리 값을 띄워두고 메인쿼리를 반복하기 때문에 훨씬 빠르게 찾을 수 있다. 그러나, 띄운 메모리와 다른 값을 찾게 될 경우는 다시 하드웨어에서 값을 찾아 메모리에 다시 띄우는 일을 해야하기 때문에 느려질 우려가 있으며, Driven 속에 pk가 없고, 데이터가 계속해서 커질 경우 메모리에 전부 띄울 수 없는데다가, 스칼라 서브쿼리로 띄운 메모리를 계속해서 풀스캔 하며 읽기 때문에 사용하지 않도록 한다. 따라서 스칼라 서브쿼리는 작은 데이터를 빠르게 읽는 용도로 쓰인다.

 

단, 스칼라 서브쿼리 시 한 값에 두 개 이상의 내용을 주어지게 할 경우 값이 반환되지 않고 오류가 뜨므로 주의해야한다.

반응형

'데이터베이스' 카테고리의 다른 글

무료 다중 데이터베이스 플랫폼, DBeaver  (0) 2021.03.16
DB와 JAVA 연동하기  (0) 2020.04.22
데이터 검색 기법  (0) 2020.04.02
11. SUB QUERY  (0) 2020.04.02
10. DML  (0) 2020.04.02