반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- assertThrows
- springboot
- 스프링 부트 입문
- 스프링 빈
- 스프링부트
- DIP
- 스프링 부트 기본
- java
- db
- mybatis
- spring
- 싱글톤
- 스프링
- JPA
- Effective Java
- Javascript
- DI
- kafka
- assertThat
- 스프링 부트
- 생성자 주입
- thymeleaf
- sqld
- @Configuration
- SQL
- 스프링 컨테이너
- 스프링 프레임워크
- jdbc
- resultMap
- 필드 주입
Archives
- Today
- Total
선 조치 후 분석
[SQL] SELECT .* VS SELECT 컬럼명 조회문 차이? 본문
728x90
반응형
SMALL
학원에서 배웠을 때는 조회문을 작성할 때, SELECT 테이블명.* 을 많이 썼던 거 같다.
하지만 모든 칼럼을 조회하는 방법은 '지양'한다고 하더라. 그래서 그 차이점이 궁금해 알아봤다.
모든 컬럼을 다 가져오는 SELECT 테이블명.* 의 경우보다는 컬럼을 더 적게 가져오는 SELECT 칼럼명이 당연히 빠르다는 의견들이 많은 것 같다.
여기서 단순히 빠르다, 느리다의 의미를 여러 가지 관점에서 설명해준 글이 있어서 갖고 왔다.
여기서 빠르다 느리다의 차이는 여러가지 관점에서 볼 필요가 있습니다.
- * 을 사용할 때와 컬럼리스트를 사용할 때의 실행계획이 달라질 수 있습니다.
실행계획이 달라진다면 스캔 속도도 달라집니다.
그러나 실행계획이 같다면 스캔 속도도 같습니다.
- 정렬 및 운반 속도 는 실행계획이 같더라도 컬럼수(data size)에 영향을 받습니다.
즉, 필요한 항목만 기술하는 것이 여러모로 좋습니다.
필요한 항목만 기술하는 경우 최적의 실행계획을 세울 확률이 높아지며
필요한 항목만 기술하는 경우 정렬속도 및 운반속도도 개선됩니다.
출처: https://devsh.tistory.com/entry/SELECT-FROM-과-SELECT-컬럼명시-FROM-은-속도차이가-날까 [날샘 코딩]
그리고 이런 내용도 있어서 같이 갖고 왔다.
코드를 작성하는 것도 개발자이지만, 그 코드를 봐야하는 것도 개발자이기에 SELECT 문 가독성 혹은
향후 운영시를 고려하여 * 사용은 지양하는 것이 다음 개발자에 대한 배려라 생각합니다.
출처:https://okky.kr/article/218480
다양한 의견들이 많지만 개인적으로도 칼럼명을 나열해서 작성하는 것이 가독성이나 향후 유지보수를 생각한다면 더 좋은 방법이라고 생각이 든다.
728x90
반응형
LIST
'Solution > DB' 카테고리의 다른 글
[SQL] WHERE 절 <if> 와 <isNotEmpty> 차이 (0) | 2022.02.14 |
---|---|
DECODE 함수 사용법 (0) | 2021.12.28 |
[MyBatis] resultMap? resultClass? 차이는? (0) | 2021.11.16 |
[Oracle] 테이블 생성법 (CRATE, PK, COMMENT) + MySQL과의 차이점 (0) | 2021.11.09 |
[DB] 프로시저(Procedure) VS 사용자 정의 함수(Function) 차이 (0) | 2021.10.20 |