📌 Select *와 Select 컬럼 지정의 차이점: 성능 최적화와 효율적인 쿼리 작성

2025. 3. 25. 15:06·기술블로그

📌 개념 정리

이번 포스팅에서는 MySQL에서 SELECT *와 특정 컬럼을 지정하여 데이터를 조회하는 방식의 차이점을 살펴보고, 성능 최적화 및 효율적인 쿼리 작성 방법에 대해 설명합니다. 특정 컬럼만 선택해 데이터를 조회할 때의 장점과 단점, 그리고 실무에서 자주 마주칠 수 있는 예시를 다룹니다.


🚦 핵심 개념 정리

**SELECT ***: 테이블에서 모든 컬럼을 가져오는 쿼리입니다. 간편하지만 불필요한 데이터까지 모두 가져오기 때문에 성능이 저하될 수 있습니다.

SELECT 컬럼명: 특정 컬럼만 선택하여 데이터를 조회하는 쿼리입니다. 성능상 효율적이며 필요한 데이터만 추출할 수 있습니다.

성능 최적화: SELECT *를 자주 사용하면 불필요한 데이터까지 가져오게 되어 성능이 떨어질 수 있습니다. 필요한 컬럼만 선택하는 방식이 성능상 유리합니다.

데이터의 양: SELECT *로 모든 데이터를 가져오면 데이터 양이 많을 경우 불필요한 리소스가 소모될 수 있습니다. 반면, 필요한 컬럼만 가져오면 정확한 데이터만 효율적으로 추출할 수 있습니다.


💻 실전 적용 예시

📌 예시 1: SELECT * 사용 (모든 컬럼 조회)

SELECT * FROM books;

설명: 이 쿼리는 books 테이블의 모든 컬럼을 조회하는 쿼리입니다. 모든 데이터를 한 번에 가져오는 것이므로 간편하지만, 데이터가 많을 경우 메모리나 네트워크 트래픽이 증가할 수 있습니다.

예시:

bookid                                    title                                  author                      publisher                         price

1 책 제목 A 작가 A 출판사 A 10000
2 책 제목 B 작가 B 출판사 B 12000

📌 예시 2: SELECT로 특정 컬럼만 조회

SELECT publisher FROM books;

설명: 이 쿼리는 books 테이블에서 publisher 컬럼만 조회하는 쿼리입니다. 필요한 컬럼만 가져오기 때문에 성능이 더 좋아지며, 불필요한 데이터는 제외됩니다.

예시:

publisher

출판사 A
출판사 B

🚀 고급 팁

🔥 성능 최적화

SELECT *를 자주 사용하면 불필요한 데이터를 모두 가져오게 되므로, 메모리 사용량과 네트워크 속도가 저하될 수 있습니다. 성능을 최적화하려면, 필요한 컬럼만 선택하여 조회하는 것이 좋습니다.

✅ 쿼리 명확화

SELECT *는 무작정 모든 컬럼을 가져오는 방식이라, 데이터의 용도가 불분명할 수 있습니다. 목적에 맞는 컬럼을 명시하면 더 명확하고 유지보수가 쉬운 쿼리가 됩니다.

🚀 데이터 양 관리

대규모 테이블에서 SELECT *를 사용할 경우 데이터가 너무 많아서 응답 시간이 길어질 수 있습니다. 쿼리 최적화를 위해 WHERE 조건이나 LIMIT을 활용하는 것도 중요합니다.


✅ "이렇게 질문하면 좋아!"

❌ "SELECT * 해주세요" → 무작정 모든 컬럼을 조회하라는 단순한 답변을 받을 수 있습니다.

✅ "책 제목과 저자만 조회하는 쿼리로 성능을 개선하려면 어떻게 해야 할까요?" → 구체적으로 필요한 컬럼만 선택하고 성능을 개선하는 방법을 알 수 있습니다.


✅ 결론

SELECT *는 모든 컬럼을 가져오기 때문에 간편하지만 비효율적일 수 있습니다. SELECT로 특정 컬럼을 선택하면 필요한 데이터만 추출할 수 있어 성능상 유리합니다.

대규모 데이터에서 불필요한 컬럼을 모두 조회하면 자원 낭비가 될 수 있으니, 목적에 맞는 컬럼만 선택하는 것이 좋은 습관입니다.

이런 방식으로 쿼리를 작성하면 실무에서도 더 효율적이고 빠른 데이터 처리와 유지보수를 할 수 있을 것입니다!

'기술블로그' 카테고리의 다른 글

📌서브쿼리의 기본 원리  (0) 2025.03.25
📌 MySQL Group By와 집계 함수 활용(Error Code 1055 해결 방법)  (0) 2025.03.25
📌 My Sql에서 부분 일치 검색으로 중복 데이터 제거하기  (0) 2025.03.25
📌 MySQL 테이블에서 중복된 데이터를 효과적으로 삭제하는 방법  (0) 2025.03.25
📌 MySQL 데이터베이스 정리 (with 크롤링 in Selenium, PymySQL)  (0) 2025.03.25
'기술블로그' 카테고리의 다른 글
  • 📌서브쿼리의 기본 원리
  • 📌 MySQL Group By와 집계 함수 활용(Error Code 1055 해결 방법)
  • 📌 My Sql에서 부분 일치 검색으로 중복 데이터 제거하기
  • 📌 MySQL 테이블에서 중복된 데이터를 효과적으로 삭제하는 방법
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (472) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (21)
      • Database (40)
      • 멘토링 (7) N
      • 특강 (18)
      • 기술블로그 (126) N
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (34) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
📌 Select *와 Select 컬럼 지정의 차이점: 성능 최적화와 효율적인 쿼리 작성
상단으로

티스토리툴바