선택 조건 학과='컴퓨터' 는 학생 릴레이션에만 걸립니다. 그래서 조인 바깥에서 늦게 거르지 말고, 학생을 먼저 줄인 뒤 수강과 결합해도 결과는 같습니다.
수강 릴레이션에는 학과 정보가 없으므로, 이 조건은 학생 쪽으로만 안전하게 밀어 넣을 수 있습니다.
옵티마이저는 같은 의미를 유지한 채, 조인 입력을 줄이는 방향으로 식을 재작성합니다.
핵심은 결과를 바꾸지 않고 조인 전에 입력 크기를 줄인다는 점입니다.
선택을 먼저 실행하면 조인 단계는 필요한 학생 튜플만 다룹니다. 큰 중간 결과를 만들 이유가 없어집니다.
학생과 수강을 먼저 조인하면, 나중에 버릴 학생의 수강 정보까지 중간 결과에 포함됩니다.