IOT , 클러스터, 파티션은 테이블 랜덤 액세스 최소화하는데 매우 효과적인 저장구조
운영 시스템 환경에서 이를 적용하려면성능 검증을 위해 많은 테스트를 진행 해야하므로 어려움이 따른다.
운영환경에서 가능한 일반적인 튜닝 기법은 인덱스 컬럼 추가

다음 같은 인덱스 구조에서
WERER C1 = 'B'

WHERE C1 = 'B' AND C2 = 3

WHERE C1 = 'B' AND C2>=3

WHERE C1 = 'B' AND C2 <=3

WHERE C1 = 'B' AND C2 BETWEEN 2 AND 3

WHERE C1 BETWEEN 'A' AND 'C' C2 BETWEEN 2 AND 3

조건 6은 C1은 스캔시작 과 끝 지점을 결정하는데 중요 역할을 했지만 C21는 그렇지 못하다 즉 C2는 스캔량을 줄이는데 거의 역할을 못했다.

전체 다 읽어야한다.
결과는 같은 두건인지만 성능 선 일시 더 많은 용어를 스캔한다.
즉 1번은
WHERE C1 = '성' AND C2 = '능' AND C3 = '검'
2번은
WHERE C1 = '성' AND C2 ='능' AND C4 ='선'
이다
왜 결과는 같은 두건이지만 더 많은 용어를 스캔하는 것일까
그 이유는
인덱스 액세스 조건은 인덱스 스캔 범위를 결정하는 조건절이다.
인덱스 필터 조건은 테이블로 액세스 할지 결정하는 조건절이다.

WEHERE C = 1 AND C2 = 'A' AND C3 = '나' AND C4 = 'A'
WHERE C1 = 1 AND C2 ='A' AND C3 = '나' AND C4 > 'A'
WHERE C1 = 1 AND C2 = 'A' AND C3 BETWEEN '가' AND '다' AND C4 = 'A'
가장 밑 조건은 C3와 C4 조건까지 만족하는 레코드는 흩어지게 된다.
즉 선행 컬럼이 모두 = 조건인 상태에서 첫번째 나타나는 범위 검색 조건 까지만 만족하는 인덱스 레코드는 모두 연속해서 모여 있지만 그 이하 조건 까지 만족하는 레코드는 비교 연산자 종류에 상관없이 흩어진다.

WHERE 아파트시세코드 = :A
WHERE 아파트 시세코드 = :A AND : B
WHERE 아파트 시세코드 = :A AND : B AND 평형타입 = :C
WHERE 아파트 시세코드 = :A AND : B AND 평형타입 BETWEEN :C AND :D
반면 인덱스 선행 컬럼이 조건절에 없거나 부등호, BETWEEN, LIKE 범위 검색 조건이면 인덱스 스캔하는 단계에서 비효율이 생긴다.
SELECT 해당층, 평당가, 입력일, 해당동, 매물구분, 연사용일수, 중개업소코드 FROM 매물아파트매매
WHERE 아파트시세코드 = 'A01011350900056'
AND 평형 = '59'
AND 평형타입 = 'A'
AND 인터넷 매물 BETWEEN '1' AND '3'
ORDER BY 입력일 DESC

인덱스를 인터넷 매물 + 아파트 시세 코드 + 평형 + 평형 타입 순으로 바꾼 후 같은 SQL을 수행하면
