스캔 : 차례대로 읽는 것
인덱스 레인지 스캔
인덱스 풀 스캔
루스 인덱스 스캔
-- index (dept_no, emp_no)
-- dept_no, emp_no 순으로 정렬되어 있으니 dept_no 을 만족하는 레코드중 emp_no 하나만 읽으면 된다.
-- 이외의 레코드는 SKIP
SELECT dept_no, MIN(emp_no)
FROM dept_emp
WHERE dept_no BETWEEN 'd002' AND 'd004'
GROUP BY dept_no;
index(gender, birth_date)
-- 기존에는 이 쿼리는 인덱스를 타지 않는다.
SELECT * FROM employees WHERE birth_date >= '1999-11-11'
SELECT * FROM employ WHERE gender='M' AND birth_date >= '1999-11-11'
페이지 잠금
?이 정순 스캔에 적합한 구조다자바 변수는 네 가지가 있습니다.
이 변수들의 차이점은 참조 범위 입니다. 지역 변수, 파마리터는 스택 프레임에 할당되므로 한 스레드에서 독립적으로 사용하는 변수입니다.
인스턴스 변수는 객체 내에 존재하는 메서드에서 참조할 수 있습니다. 접근제어자가 public 일 경우 외부 객체에서도 접근이 가능합니다.
클래스 변수는 정적 변수라고도 하며 JVM의 method area 라는 공유 메모리 영역에 할당됩니다.
변수의 참조 범위를 제한하는 이유는 변수가 필요한 곳에서 독립적으로 사용되게 만들어 의도치 않은 변경을 방지합니다.
사이드 이펙트를 방지하기 위해 변수의 참조 범위를 최대한 줄이는 것이 중요합니다.