count(*)와 count(1)은 SQL에서 사용되는 두 가지 다른 방법으로 행의 수를 세는 것입니다. 그러나 두 방법 사이에는 중요한 차이점이 있습니다.
1. count(*):
- count(*)는 테이블에서 모든 행을 세는 데 사용됩니다.
- 이것은 모든 열을 검색하고 각 행의 존재 여부에 상관없이 행 수를 세므로 NULL 값이 포함된 행도 포함됩니다.
- count(*)를 사용하면 테이블에 존재하는 모든 행의 수를 반환합니다.
SELECT count(*) FROM my_table;
2. count(1):
- count(1)은 테이블에서 모든 행을 세는 다른 방법입니다.
- 그러나 count(1)은 행의 내용을 실제로 검색하지 않고, 단순히 행의 존재 여부만 확인하기 때문에 성능상의 이점이 있을 수 있습니다.
- 마찬가지로 NULL 값이 포함된 행도 포함됩니다.
SELECT count(1) FROM my_table;
주요 차이점:
- count(*)는 열의 내용을 실제로 검색하기 때문에 열에 인덱스가 없다면 성능 저하가 발생할 수 있습니다. 하지만 count(1)은 인덱스 여부와 상관없이 효율적으로 작동합니다.
- count(*)는 특정 열의 NULL 값을 포함한 행을 세지만, count(1)도 마찬가지로 NULL 값을 포함한 행을 세므로 결과에 차이가 없습니다.
- 대부분의 데이터베이스 시스템에서는 count(*)과 count(1)의 성능 차이가 미미하거나 없으므로 어떤 것을 선택할지는 주로 코드 가독성과 개발자 선호도에 따라 결정됩니다.
일반적으로 성능상의 차이가 없는 경우, 가독성을 위해 count(*)를 사용하는 것이 권장됩니다.
'게으른 개발자의 끄적거림' 카테고리의 다른 글
SQL LIKE 연산자 ESCAPE 사용법 (0) | 2023.08.29 |
---|---|
SET DEFFINE OFF 오류 해결방법 (0) | 2023.08.28 |
리눅스 명령어 모음 (0) | 2023.08.23 |
Java API로 HTTP 통신하는 방법 (0) | 2023.08.22 |
form태그 submit 설명 (0) | 2023.08.21 |