본문 바로가기
Database/MySQL

[MySQL] COUNT(1), COUNT(*), COUNT(column) 차이

by 데이터현 2022. 4. 5.

MySQL에서 COUNT(1)과 COUNT(*)의 차이에 대해서 알아봤다.

 

결론은 COUNT(1)과 COUNT(*) 차이가 없다.
COUNT(*)는 NULL 값을 포함하는지 여부에 관계없이 검색된 행 수의 카운트를 반환

COUNT(1), COUNT(0), COUNT(-2312312313) 모두 똑같이 동작함

https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_count

 

MySQL :: MySQL 8.0 Reference Manual :: 12.20.1 Aggregate Function Descriptions

MySQL 8.0 Reference Manual  /  ...  /  Functions and Operators  /  Aggregate Functions  /  Aggregate Function Descriptions 12.20.1 Aggregate Function Descriptions This section describes aggregate functions that operate on sets of values. They are

dev.mysql.com

공식문서에 똑같다고 나옴.

 

COUNT(칼럼명) 은 뭘까?

이것은 NULL값은 제외하고 나온다.

 

COUNT(*)은 NULL값을 비교하지 않기 때문에 속도가 빠르다 -> 데이터를 읽지 않고 레코드 수만 불러오기 때문

COUNT(칼럼명)은 실제 데이터를 들여다보기 때문에 속도가 느리다

 

+ 인덱스를 걸어도 속도는 마찬가지

 

참조 :

https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=77484

댓글