작성
·
216
0
4번 문제를 풀다가 궁금한 점이 생겨서 질문해봅니다.
단지 'BOS'팀의 홈런왕 1명을 구하기만 하면 되는데 SELECT한 전체 테이블을 정렬하는것은 조금 비효율적이라고 생각해서 SORTING 없이 답을 구하는 방법을 찾아보았는데요
이전의 방법으로 홈런왕의 ID를 구해서 저장하고 있다가 홈런왕이 필요하면해당 ID나 인덱스등을 이용하여 직접적으로 구하는것 외에는 딱히 다른 방법을 찾을수 없었습니다.
내부적으로 TOP N 키워드가 들어가있으면 전체 데이터를 정렬하는것이 아니라 최대 N명만 구하는 등 자체적인 최적화가 있는 것인가요 아니면 애초에 이러한 고민이 불필요할 정도로 성능상의 유의미한 차이가 없다 (있다면 그것은 DB 설계 자체의 문제?) 는 것인가요?
답변 1
1
sorting 성능 관련해서는 후반부에 인덱스와 성능 향상 등을 다루면서
다시 자세히 나오니, 일단 넘어가주시기 발바니다.
다만 경험상 칼럼이 정말 정말 많아지면
가끔은 비효율적인 sql 구문을 사용할 일도 생길 수 있습니다.
(인덱스를 남발하면, 오히려 역효과가 날 수도 있기 때문)
물론 select한 쪽에서 인덱스로 최대한 걸러낸 상태이긴 해야겠죠!
감사합니다