복붙노트

[SQL] COUNT (ID)의 MySQL의 대 수 (*)

SQL

COUNT (ID)의 MySQL의 대 수 (*)

테이블의 기본 필드 'ID'는 (등 속도로)가 가정 다음 질의 차이가 있습니까?

SELECT COUNT(id) 
  FROM table

SELECT COUNT(*) 
  FROM table

해결법

  1. ==============================

    1.www.mysqlperformanceblog.com에서 카운트 (골) 대 백작 (*)를 살펴 보라 그들은의 MyISAM과 InnoDB의 테이블이 (인덱스 등으로, NOT NULL 여부) 다양한 '안부'유형이 주제에 대해 설명합니다.

    www.mysqlperformanceblog.com에서 카운트 (골) 대 백작 (*)를 살펴 보라 그들은의 MyISAM과 InnoDB의 테이블이 (인덱스 등으로, NOT NULL 여부) 다양한 '안부'유형이 주제에 대해 설명합니다.

  2. ==============================

    2.나는 질문은 MySQL의에 대해 알고,하지만 그것의 가치, COUNT (*) 오라클 권장을위한이 데이터베이스의 특정이 보여 간다 (BalusC에서 위의 설명을 참조). 데이터베이스의 많은 (MS-SQL, MySQL은) 메타 데이터의 다양한 종류를 보유 정보 스키마 테이블을 가지고 있기 때문에, 거기에 하나의 구문은 단순히 쉽게 이용 가능한 값을 찾는 경우 차이가있을 수밖에, 다른 테이블로 바로가는 . 하루의 끝에서 : 당신이 뒤에서 벌어지고 말 것이라고 설명 무엇 페이지를 다른 옵션을 시도합니다.

    나는 질문은 MySQL의에 대해 알고,하지만 그것의 가치, COUNT (*) 오라클 권장을위한이 데이터베이스의 특정이 보여 간다 (BalusC에서 위의 설명을 참조). 데이터베이스의 많은 (MS-SQL, MySQL은) 메타 데이터의 다양한 종류를 보유 정보 스키마 테이블을 가지고 있기 때문에, 거기에 하나의 구문은 단순히 쉽게 이용 가능한 값을 찾는 경우 차이가있을 수밖에, 다른 테이블로 바로가는 . 하루의 끝에서 : 당신이 뒤에서 벌어지고 말 것이라고 설명 무엇 페이지를 다른 옵션을 시도합니다.

  3. ==============================

    3.이노는 로우 카운트를 캐시하지 않으므로 이노와 COUNT (*)는 COUNT (ID)보다 느리다.

    이노는 로우 카운트를 캐시하지 않으므로 이노와 COUNT (*)는 COUNT (ID)보다 느리다.

    반면에,의 MyISAM으로의 MyISAM 행의 수를 유지하므로 쿼리 시간에 빠르고 반환 결과가 될 것이다 (*) 계산합니다.

    의 MyISAM 테이블 수준 잠금을 수행하기 때문에의 MyISAM은, 어떤 한 번에 하나의 트랜잭션이 실행 된 이후 행의 수를 유지하는 것은 쉽다. 트랜잭션 커밋 후에는 다음 트랜잭션이 시작되기 전에 (트랜잭션에 의해 수행 계정 삽입과 삭제를 고려) 테이블의 행 수를 업데이트의 MyISAM에 대한 쉽습니다.

    그러나, 로우 레벨 잠금을 사용 이노로, 동시에 실행하는 다수의 (등 아직 커밋) 트랜잭션이있다. 일관성을 보장하기 위해 각 트랜잭션은 트랜잭션의 시작으로 (테이블의 행 수를 포함)의 표를 참조 할 수있다, 플러스 자신의 변화. 따라서, 테이블의 행 수는 분명히 각 동시 트랜잭션 잠재적으로 상이하다. 따라서 주어진 시간에 행의 단일 "올바른"총 수 (실행중인 갱신 트랜잭션이없는 경우를 제외하고)이 없습니다. 여러 개의 동시 트랜잭션, 테이블의 행의 총 수를 캐시 정말 수 없습니다.

  4. ==============================

    4.카운트(*) 카운트 (ENAME) ENAME이있는 열이 아니므은 diff 출력을 표시 할 수 있습니다 NOT NULL 제약 조건과는 확실히 일부 널 (null) 값을 갖는 수 어느 계산되지 않습니다.

    카운트(*) 카운트 (ENAME) ENAME이있는 열이 아니므은 diff 출력을 표시 할 수 있습니다 NOT NULL 제약 조건과는 확실히 일부 널 (null) 값을 갖는 수 어느 계산되지 않습니다.

    희망이 도움이 ..!

  5. from https://stackoverflow.com/questions/1697137/countid-vs-count-in-mysql by cc-by-sa and MIT license