📌 개념 정리
이번 포스팅에서는 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 |