source

MySQL에서 COUNT(id) 대 COUNT(*)

manycodes 2023. 10. 3. 11:06
반응형

MySQL에서 COUNT(id) 대 COUNT(*)

표에 기본 필드 'id'가 있다고 가정할 때(속도 등) 다음 쿼리 간에 차이가 있습니까?

SELECT COUNT(id) 
  FROM table

대.

SELECT COUNT(*) 
  FROM table

이 질문이 MySQL에 대한 질문인 건 알지만, 가치가 있다면,count(*)Oracle의 경우 권장되며, 이는 이에 대한 해답이 데이터베이스에 의존적일 수 있음을 보여줍니다(BalusC의 위 주석 참조).

많은 데이터베이스(MS-SQL, MySQL)에는 다양한 유형의 메타데이터를 저장하는 정보 스키마 테이블이 있기 때문에 한 구문이 단순히 쉽게 사용할 수 있는 값을 찾는 것이고 다른 구문이 테이블로 바로 이동하는 것이라면 차이가 있을 수밖에 없습니다.

마지막으로 여러 가지 옵션을 사용해 보고, EXPROFN이 지금 막후에서 무슨 일이 일어나고 있는지 확인해 보십시오.

이것이 몇 년 된 것으로 알고 있지만 어떤 것을 사용해야 하는지에 대한 증거가 보이지 않아 여기에 제 연구 결과를 올리겠습니다.

MySql 5.7의 InnoDB 테이블에 대해 MySql Workbench에서 설명을 실행하면 다음이 표시됩니다.

Executing count(*)

Executing count(id)

보다시피 두 결과가 동일하므로 이 시나리오에서는 두 식이 모두 동치입니다.

한가지 중요한 차이점은Count(*)그리고.Count($col_name) 다른 출력을 보여줄있습니다.$col_namenull 값은 다음과 같이 계산되지 않으므로 열을 사용할 수 없습니다.Count.

언급URL : https://stackoverflow.com/questions/1697137/countid-vs-count-in-mysql

반응형