쿼리(SQL에서 주로 SELECT)를 빠르고 효율적으로 실행하기 위한 작업
쿼리 최적화를 통해 데이터를 빠르게 받을 수 있다.
즉, 성능을 높일 수 있다.
WHERE PRICE + 100 < 200
WHERE PRICE < 100
인덱스가 걸린 컬럼을 변경하면 인덱스를 그대로 사용할 수 없다.
함수, 계산, 표현식은 인덱스 컬럼에 작성하지 말자
SELECT * FROM student;
SELECT ID FROM student;
많은 필드를 불러올 수록, 디비는 더 많은 로드를 부담한다.
딱 사용할 필드만 가지고 온다.
중복값을 제거하는 연산은 시간이 오래 걸린다.
해결 방법: 테이블의 크기를 최소화, EXISTS활용
WHERE c.value LIKE "%Programming"
WHERE c.value LIKE "Web%" OR c.value LIKE "MobileProg%"
Web Programming과 Mobile Programming을 추출하고 싶은 경우
%는 FULL SCAN을 사용하며 인덱스를 타지 않는다.
조건 컬럼에는 별도의 연산을 걸지 않는다.
과 유사하다.
항상 통용되는 것은 아니다.
inner조인은 대부분 Query Planner에서 가장 효과적인 순서를 탐색해 inner join순서를 변경
-> 실행 시간 차이 거의 없다.
스칼라 서브 쿼리는 함수와 같이 레코드당 하나의 값을 리턴
건수가 작음 효과적. 건수가 많으면 성능 저하와 CPU사용률 높인다.