2021 10 16
2021-10-16¶
CU SQL 강의¶
- 인덱스를 걸어놨다고 꼭 Range Scan 하는 것 아님 - mysql에는 mysql engine과 storage engine이 있음 - storage engine에서 filter, mysql engine에서 filter가 효율적인지 판단
- Index는 범위 탐색을 지원
-
SELECT * FROM subway.programmer WHERE id = 10라면 10짜리 하나만 읽을것 같은데 1.2 개의 Row를 읽음 - 만약 id가 인덱스만 있지 않고, unique를 걸어뒀다면 바로 single row로 반환 받았을 것 - 인덱스는 정렬을 이미 해둔거자나? - 인덱스를 잘 활용한다면 order by, group by 같은 소팅 연산을 생략할 수 있어
- 테이블 액세스를 최소화하는 것?
-
SELECT * FROM emp WHERE deptno = 30 AND sal >= 2000의 경우 -- deptno에 대해서만 인덱스 걸었다면, sal을 검사하기 위해 6번의 테이블 IO - deptno, sal에 대해서 복합 인덱스 걸었다면, 조건을 만족하는 하나의 칼럼에 대해 1번 테이블 IO