SQL문을 작성하다보면 COUNT(1)을 쓰거나 COUNT(*)을 쓰곤 하는데, 보통 어떤 것을 더 많이 쓰시나요?
저는 평소에 COUNT(1)을 더 많이쓰는데요.
어느 것을 사용해야 할까요? 그리고 어떤 차이가 있을까요?
이 function은 단순하게도 테이블에 있는 row들을 카운팅합니다. NULL값이던 다른 값이던 신경쓰지 않습니다.
단지 row가 얼마나 되는지 카운팅합니다.
이 function 또한 테이블에 있는 모든 row를 카운팅합니다.
여기서 1은 단지 상수이며, 특정 column을 참조하지도 않습니다. 단지 자리를 차지하는 역할(placeholder)로 존재합니다.
데이터베이스 엔진은 COUNT(*)과 동일하게 취급합니다.
SQL을 많이 작성해본 사람들에게는 COUNT(1)이나 COUNT(*)이나 가독성에서 큰 차이가 없을 것 같은데,
그렇지 않다면 COUNT(1)을 보고 아주 잠깐동안 이게 무슨 의미지? 할수도 있다.
가독성 측면에서는 COUNT(*) 에 한표!
몇몇 사람들은 COUNT(1)이 더 빠르다고 말하는데 (사실 나두.. 그런줄 알았는데..), 현대의 데이터베이스들은 아주 스마트하고 똑똑해서 실제로 둘 사이에는 차이가 거의 없다고 하네요.
실제로 뭘 쓰던 크게 상관이 없다. 가독성이 조금 더 좋은 COUNT(*)을 써도되고
사바사 직장바이직장 인듯하다. 프로젝트 팀이나 조직에서 더 선호되는 것을 선택해서 쓰도록 하자~