SELECT * 판단 기준

운영 쿼리는 편한 조회보다 필요한 컬럼을 정확히 고르는 쪽이 안전합니다.

SELECT *는 탐색에는 빠르지만, 컬럼이 늘거나 큰 값이 추가되면 애플리케이션이 원하지 않는 데이터까지 함께 가져옵니다.

products 한 행

전체 컬럼 요청

탐색용에 가까움
SELECT * FROM products;
결과에 실리는 컬럼
성능 큰 텍스트나 바이너리 컬럼까지 전송되어 I/O와 네트워크 부담이 커질 수 있습니다.
변경 컬럼 추가만으로 API 응답 모양이나 앱 처리 비용이 바뀔 수 있습니다.
의도 코드가 실제로 어떤 데이터에 의존하는지 SQL만 보고 알기 어렵습니다.

필요 컬럼만 요청

운영 코드 기본값
SELECT product_id, name, price
FROM products;
결과에 실리는 컬럼
성능 필요한 값만 가져와 전송량과 후속 처리 비용을 줄이기 쉽습니다.
변경 새 컬럼이 추가되어도 이 쿼리의 결과 모양은 그대로 유지됩니다.
의도 조회 목적과 앱 의존 컬럼이 SQL에 직접 드러납니다.
허용

콘솔 탐색, 디버깅, 작은 임시 확인에서는 편의상 쓸 수 있습니다.

주의

API, 배치, 화면 쿼리처럼 반복 실행되는 곳에서는 결과 폭을 명시합니다.

효과

필요 컬럼만 쓰면 covering 또는 index-only scan 가능성도 생깁니다.