SQL

SQL

COUNT(*)보다 COUNT(컬럼)이 더 빠를 때가 있다

페이지 정보

profile_image
영삼이
0건 45회 25-03-28 15:21

본문

COUNT(*)보다 COUNT(컬럼)이 더 빠를 때가 있다

NULL을 제외하면 스캔 대상이 줄어든다


❌ 무조건 COUNT(*)만 쓰는 경우

SELECT COUNT(*) FROM users;
  • 테이블 전체 row 수를 셈

  • 실제로는 모든 열을 스캔할 수도 있음 (DB 종류에 따라 다름)


✅ 특정 컬럼 기준으로 셀 때는 COUNT(컬럼) 사용

SELECT COUNT(email) FROM users;
  • emailNULL이 아닌 row만 계산

  • 인덱스가 있으면 인덱스만 스캔해서 더 빠름


예시: 조건부 카운트

SELECT
  COUNT(*) AS 전체,
  COUNT(phone) AS 전화번호있는유저
FROM users;
  • 조건 없이 전체 수 = COUNT(*)

  • NULL 제외한 특정 필드 기준 = COUNT(컬럼)


✔️ 단순 row 수가 아니라
특정 조건, 특정 컬럼 존재 여부 기준으로 셀 때는
COUNT(컬럼)을 활용하면 불필요한 전체 스캔을 줄일 수 있다.

댓글목록

등록된 댓글이 없습니다.