SELECT 에 (SELECT~) 는 들고 있는 것이 서브쿼리
셀렉트 절에 셀렉트 + 듀얼있음 / 셀렉트 절에 셀렉트 + 조인 있음
DRIVEN TABLE이 PK를 들고 있는게 좋아요. 데이터가 적은게 좋아요.
캐싱 : 이미 한번 파싱한거는 기억하고 있다.
쿼리를 캐싱하고 있어서 다시 파싱하지 않아요.
쿼리문이 똑같으면 파싱 X : 캐싱 남아있음
1. driving table은 무조건 full scan
2. driven table 들고 있는게 아니면 스칼라 사용 금지
3. driven table의 내용이 커질 것이 예상이 된다면 스칼라 서브쿼리 쓰지말기!
(얘 쓰지말고 outer join하기, driven table의 내용이 적을 때, 내용이 많아질 가능성이 없을 때 사용하기 좋음. (ex)DEPTNO
driven table의 내용이 점점 늘어나면 연산 양이 폭발적으로 늘어나기 때문에
select *
from BOARD;
SELECT *
FROM REPLY;
SELECT ID, TITLE, (
SELECT COUNT(*)
FROM REPLY
WHERE BOARDID = B.ID
)
FROM BOARD B;
'DATA BASE' 카테고리의 다른 글
20200409 JOIN 서브쿼리 집합연산 (0) | 2020.04.09 |
---|---|
20200408 오후 (0) | 2020.04.08 |
INDEX (0) | 2020.04.02 |
서브쿼리 (0) | 2020.04.02 |
DML(INSERT, UPDATE, DELECT, UPDATE JOIN) (0) | 2020.04.02 |