저장된 실행 계획을 재사용하고 최적화하는 것은 데이터베이스 시스템의 성능을 향상시키며, 자원 사용을 최적화하고 쿼리 실행 비용을 최소화하는 데 도움이 됩니다.
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을 사용하며 인덱스를 타지 않는다.
1번과 유사하다.
항상 통용되는 것은 아니다.
inner조인은 대부분 Query Planner에서 가장 효과적인 순서를 탐색해 inner join순서를 변경
-> 실행 시간 차이 거의 없다.
스칼라 서브 쿼리는 함수와 같이 레코드당 하나의 값을 리턴
건수가 작음 효과적. 건수가 많으면 성능 저하와 CPU사용률 높인다.