SELECT COUNT(0) 은 COUNT(*) 와 같다?

MySQL 대용량 데이터베이스 책 읽고 있는데,

---------------------------------------------
no                        이름
---------------------------------------------
1                          하하하
2                          알찬돌삐
null                      히히히


라고 되어있을때.

SELECT COUNT(no) FROM table 을 할 경우. 2 를 반환합니다.

3 번째 행에 null 이 있기때문에. null 은 포함하지 않음.

전 보통  

SELECT COUNT(0) FROM table 을 쓰는데,

null 이 올수 없는 컬럼이  즉, (0) 이 count 함수안에 올 경우

내부적으로 COUNT(*) 으로 변환되다고 하네요.

COUNT(no) 를 하면 no 에서 null 아닌 것을 카운트하며,

COUNT(*) 를 할 경우 전체 컬럼을 세는것이 아니라....

행의 갯수만 세개 된다고 합니다....




이제까지 COUNT(*) 은 나쁘다 라고 알고 있던것에 대한걸 뒤집는것 같네요.
|

댓글 6개

행의 갯수를 세는것과
COUNT(no) 를 세는것....
어느게 더 빠를까.
개인적으론 행의 갯수를 세는 COUNT(*) 이 더 빠를것 같습니다.
;;;p싸이트랑 똑같은 게시물에 똑같읕 댓글이라니.
저는 COUNT(*) 가 빠르다고해서 COUNT(*)만 사용하고 있습니다.
혹시 http://book.11st.co.kr/Goods.do?cmd=detail&gdsNo=M0000000890428 이책을 보시는건가요?
(2)
ㅋㅋㅋ 네./
맞습니다. count(*) 이 가장 빠릅니다.
그 다음이 not null 유니크한 컬럼으로 count(col1) 한것이고
아무컬럼이나 count(col2)를 하면 인덱스를 타지 않습니다. full scan 입니다.
댓글을 작성하시려면 로그인이 필요합니다.

자유게시판

+
제목 글쓴이 날짜 조회
15년 전 조회 1,917
15년 전 조회 1,814
15년 전 조회 1,381
15년 전 조회 1,780
15년 전 조회 2,168
15년 전 조회 1,830
15년 전 조회 2,001
15년 전 조회 2,110
15년 전 조회 1,671
15년 전 조회 1,732
15년 전 조회 1,920
15년 전 조회 1,468
15년 전 조회 1,728
15년 전 조회 1,847
15년 전 조회 3,822
15년 전 조회 3,820
15년 전 조회 1,784
15년 전 조회 9,938
15년 전 조회 1,431
15년 전 조회 1,808
15년 전 조회 2,970
15년 전 조회 1,399
15년 전 조회 2,819
15년 전 조회 1,263
15년 전 조회 2,054
15년 전 조회 1,733
15년 전 조회 3,547
15년 전 조회 2,284
15년 전 조회 1,723
15년 전 조회 2,592