SELECT * FROM table 속도

-·2020년 10월 31일
0

SELECT * FROM , SELECT 컬럼명 FROM 속도차이

*이 더 느린줄 알았는데 검색해보니까 속도차이는 없다고 하네

즉, 어짜피 전체 컬럼을 가져오는거면 * 나 컬럼명을 쓴거나 속도 차이가 없다.

더 적은 컬럼명을 가져오는거면 당연히 * 가 더 느리다 컬럼수가 많으니까.

DBA 커뮤니티 구루비의 "마농" 님의 답변

  • 조회 결과가 같다면? (즉, 전체컬럼을 다 가져오는 경우라면?)
    - * 이나 컬럼리스트나 속도차 없습니다.

  • 조회 결과가 다르다면?
    - 모든 컬럼을 다 가져오는 * 보다는 컬럼을 더 적게 가져오는 컬럼리스트가 당연히 빠르겠죠.

여기서 빠르다 느리다의 차이는 여러가지 관점에서 볼 필요가 있습니다.

  • * 을 사용할 때와 컬럼리스트를 사용할 때의 실행계획이 달라질 수 있습니다.
  • 실행계획이 달라진다면 스캔 속도도 달라집니다.
  • 그러나 실행계획이 같다면 스캔 속도도 같습니다.
  • 정렬 및 운반 속도 는 실행계획이 같더라도 컬럼수(data size)에 영향을 받습니다.

즉, 필요한 항목만 기술하는 것이 여러모로 좋습니다.
필요한 항목만 기술하는 경우 최적의 실행계획을 세울 확률이 높아지며
필요한 항목만 기술하는 경우 정렬속도 및 운반속도도 개선됩니다.

결론은 그래도 필요한 항목만 기술하는게 더 좋다.

profile
거북이는 오늘도 걷는다

0개의 댓글