DB는 네트워크 전송 단위( 운반 단위, fetch size ) 만큼만 클라이언트에 보내줌
JDBC드라이버가 fetch size 단위로 네트워크 I/O를 최소화
Fetch Size 조정가능( 운반 단위 조절 가능 )
SELECT를 할 때, 데이터는 한 번에 다 가져가서 보여주는 게 아니라
Array size로 차곡차곡 상자 같은 곳에 담아서 화면에 출력이 된다.
전체 범위 처리는 전체 데이터를 다 읽고, 화면에 보여준다. 반면 부분 범위 처리는 부분만 읽고 보여준다.

쉽게 말해
데이터를 퍼올려서 바로 보여줄 수 있으면 부분범위 처리라고 판단하면 된다.
이 같은 개념을 알 수 있다면 옵티마이저가 처리하는 방식에 대해 이해하는 기초가 된다.
전체 범위 처리 : 풀 스캔 후 가공하여 Array Size(운반 단위) 만큼 추출되어야 결과를 얻음
부분 범위 처리 : 조건을 만족하는 Row 수가 Array Size에 도달되면 결과를 얻음
select * from [user]
를 실행하면 언제 부터 결과를 받을 수 있을까?
운반 단위에 차면 바로 바로 응답한다.
그래서 0.0001초 만에 결과를 받기 시작, 이것이 바로 부분 범위 처리이다.
WHERE조건에 쓰인 키워드가 INDEX를 타서 그 부분만 읽는 다던지
, 데이터의 가공없이 바로 바로 보여주는 상태가 부분범위 처리
select * from [user] order by name
는 전체를 읽어서 name으로 정렬 해야만 결과를 받을 수 있다.
이것이 바로 전체 범위 처리이다.
( 이외에도 COUNT그룹함수 같은 가공이 한번 일어나는 것들 )
'DB > RDB' 카테고리의 다른 글
| MySQL 조회시 플로우 (0) | 2025.04.18 |
|---|---|
| 다중 칼럼 인덱스 (1) | 2025.04.18 |
| SQL튜닝 (0) | 2025.04.17 |
| SQLD 자격증 (0) | 2025.04.17 |
| RDB에선 transaction없이 SQL을 실행할 수 없다 ? (0) | 2025.04.15 |