insert와 update는 레코드 단위로 작업이 이뤄지기에 문제가 되는 경우는 별로 없다.

select는 테이블을 조합해서 가져와야하는 경우가 많고, 빈번하게 호출되기에 select절에서 최적화를 진행해야한다.

11.4.1 SELECT 절의 처리 순서

책에서의 “SELECT 문장”과 “SELECT 절”의 표현을 구분하고 있다.

SELECT 문장은 SQL 쿼리 전체를 의미하고, SELECT 절은 FROM 이전까지의 문장을 의미한다.

SELECT 절을 실행할 때 어떤 문장 순서로 실행되는지에 대해서 알아야 처리 결과를 예측할 수 있다.

다음과 같은 순서로 진행된다.

image.png

문장이 없는 경우가 있을 수 있으나 순서가 바뀌는 경우는 거의 없다.

?) “SQL에는 ORDER BY나 GROUP BY 절이 있더라도 인덱스를 이용해 처리할 때는 그 단계 자체가 불필요하므로 생략된다.”

⇒ 임의로 인덱스를 만든 경우엔 태워질 수 있겠지만, 프라이머리 키 인덱스만 존재하는 상황에서 이런 경우가 가능한가??

⇒ 왜 안된다고 생각하고 있을까? ORDER BY와 GROUP BY를 사용할 때 인덱스를 어떻게 이용하는지에 대해서 공부해볼 필요가 있는 것 같다.

ORDER BY만 존재하는 경우엔 다음과 같이 실행 될 수 있다.

image.png