프로덕션 쿼리에서 SELECT *을 사용하는 것이 좋은가?
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- SQL 쿼리 작성 및 데이터베이스 최적화에 관심 있는 개발자
- 중급 이상의 SQL 지식을 가진 실무자
핵심 요약
- SELECT *은 성능 저하, 쿼리 불투명성, 데이터베이스 간 결합 강도 증가 등의 문제를 유발할 수 있음
- 명시적 컬럼 지정(예:
SELECT id, name, email
)이 쿼리 효율성, 유지보수성, 데이터베이스 설계 유연성 향상에 기여함 - 프로덕션 환경에서는 명시적 컬럼 선택이 베스트 프랙티스로 권장됨
섹션별 세부 요약
1. 빠르고 간편한 SELECT * 사용 예시
SELECT * FROM users;
은 모든 컬럼을 반환하지만, 불필요한 데이터 전송으로 네트워크 대역폭 낭비 발생- 쿼리 성능 분석 시 테이블 구조 변경에 따라 예기치 못한 결과 발생 가능성 증가
2. 명시적 컬럼 선택 예시
SELECT id, name, email FROM users;
은 필요한 데이터만 선택하여 네트워크 오버헤드 최소화- 쿼리의 의도가 명확해지며, 테이블 구조 변경 시 쿼리 수정 필요성 감소
3. 실무 고려사항 및 질문
- SELECT * 사용 시 발생한 실무 문제 사례를 공유하는 것이 중요
- 베스트 프랙티스 논의를 통해 팀 내 일관된 쿼리 작성 가이드라인 수립
결론
- 프로덕션 환경에서는 명시적 컬럼 선택(예:
SELECT id, name, email
)을 반드시 적용하여 성능과 유지보수성을 균형 있게 관리해야 함