본문 바로가기
DB/DB 문법

쿼리 조회 시 *(asterisk)는 정말 지양해야 할까?

by oneny 2023. 5. 18.
https://oneny.tistory.com/11 에서 쿼리 조회하는데 *(asterisk)를 사용하면 좋지 않다고 얘기했는데
얼마나 영향이 있는지 직접 테스트해보자.

 

*(asterisk)를 사용하여 조회한 경우

SELECT *
FROM sales s, products p, users u
WHERE s.barcode = p.barcode AND s.user_id = u.id;

매출(Sales) 테이블에서 barcode를 통해 판매상품(products) 테이블과 JOIN을 하고, 사용자 테이블은 user_id를 통해 JOIN하는 쿼리이다.

 

쿼리 결과

쿼리 결과로 30,204 레코드를 반환하는데 4.355s가 걸렸다.

 

barcode와 user_id만 조회한 경우

SELECT s.barcode, u.name
FROM sales s, selling_products se, users u
WHERE s.barcode = se.barcode AND s.user_id = u.id;

위와 같은 쿼리인데 바코드와 사용자 이름만 조회한 경우이다.

 

쿼리 결과

30,204개의 레코드 반환하는데 100ms와 걸렸고, *(asterisk)를 사용한 경우와 큰 차이를 보였다. *를 사용한 경우 거의 30개 넘는 컬럼이라 컬럼 개수가 좀 많이 차이있긴 하지만 그래도 *를 지양하는 좋다는 것을 눈으로 확인할 수 있었다.

결론은 *(asterisk)는 정말 지양해야겠다....

'DB > DB 문법' 카테고리의 다른 글

쿼리 실행 순서  (1) 2023.05.18
조건식(Conditional Expressons)  (0) 2023.05.18
데이터베이스 및 테이블 생성  (0) 2023.05.18
JOINS와 집합 연산자  (0) 2023.05.16
서브쿼리(Sub Query)  (1) 2023.05.16