>  기사  >  데이터 베이스  >  COUNT(*) 대 COUNT(column_name): 언제 어떤 MySQL 함수를 사용해야 합니까?

COUNT(*) 대 COUNT(column_name): 언제 어떤 MySQL 함수를 사용해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-24 09:33:17164검색

COUNT(*) vs. COUNT(column_name): When Should You Use Which MySQL Function?

COUNT(*)와 COUNT(열 이름)의 차이점 이해

MySQL에서 COUNT(*)와 COUNT(열 이름) 기능은 데이터 집계에서 중요한 역할을 합니다. 둘 다 결과 집합의 행 수를 반환하지만 쿼리의 정확성과 성능에 영향을 미칠 수 있는 미묘한 차이가 있습니다.

COUNT(*) 대 COUNT(column_name)

  • COUNT(*): 이 함수는 결과 집합에 관계없이 모든 행의 개수를 계산합니다. 특정 열에 NULL 값이 포함되어 있는지 여부. 가장 큰 장점은 NULL 값을 확인할 필요가 없기 때문에 속도가 빠르다는 것입니다.
  • COUNT(column_name): COUNT()와 달리 이 함수는 지정된 열이 null이 아닙니다. COUNT(column_name)는 null 값을 제외하여 비어 있지 않은 값의 보다 정확한 개수를 제공합니다. 그러나 특정 시나리오, 특히 대규모 데이터 세트를 처리하고 null 값이 있는 경우 COUNT()보다 느릴 수 있습니다.

대안: COUNT(1)

COUNT(1) 함수는 기본적으로 COUNT()와 동일하게 동작합니다. 1은 결코 null이 아니기 때문에 결과 집합의 모든 행을 계산합니다. 결과적으로 COUNT(1)은 COUNT()와 동일한 성능 이점을 제공합니다.

데모

이러한 함수 간의 차이점을 설명하려면 다음을 고려하세요. 수행원 예:

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);

SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;

결과:

a   b   c
3   2   3

보시다시피 COUNT()는 null 값과 null이 아닌 값을 모두 계산하여 3을 반환합니다. . COUNT(x)는 null 값을 제외하고 2를 반환합니다. 그리고 COUNT(1)은 3에서 COUNT()의 개수와 일치합니다.

위 내용은 COUNT(*) 대 COUNT(column_name): 언제 어떤 MySQL 함수를 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.