[mysql] 테이블 행 수

테이블에서 레코드 수를 검색하는 MySQL 명령은 무엇입니까?



답변

SELECT COUNT(*) FROM fooTable;

테이블의 행 수를 계산합니다.

참조 설명서를 참조하십시오 .


답변

아무도 언급하지 않았기 때문에 :

show table status;

각 테이블의 예상 행을 포함하여 추가 정보와 함께 모든 테이블을 나열합니다. 이것이 phpMyAdmin이 데이터베이스 페이지에 사용하는 것입니다.

이 정보는 MySQL 4에서 사용할 수 있으며 아마도 MySQL 3.23에서도 오래 전 정보 스키마 데이터베이스 일 것입니다.

최신 정보:

다운 투표가 있었으므로 표시된 숫자가 InnoDB 및 TokuDB에 대해 추정되며 MyISAM 및 Aria (Maria) 스토리지 엔진에 절대적으로 정확 하다는 것을 분명히하고 싶습니다 .

문서 :

행 수 MyISAM과 같은 일부 스토리지 엔진은 정확한 수를 저장합니다. InnoDB와 같은 다른 스토리지 엔진의 경우이 값은 근사치이며 실제 값과 40 %에서 50 %까지 다를 수 있습니다. 이 경우 SELECT COUNT (*)를 사용하여 정확한 수를 얻으십시오.

다음과 같은 쿼리 때문에 MySQL에서 행 수를 보는 가장 빠른 방법이기도합니다.

select count(*) from table;

전체 테이블 스캔을 수행하면 대용량로드 서버에서 몇 시간이 걸릴 수있는 매우 비싼 작업이 될 수있는 작업을 검색 할 수 있습니다. 또한 디스크 I / O가 증가합니다.

동일한 작업으로 인해 삽입 및 업데이트 테이블이 차단 될 수 있습니다. 이는 이국적인 스토리지 엔진에서만 발생합니다.

InnoDB와 TokuDB는 테이블 잠금으로 정상이지만 전체 테이블 스캔이 필요합니다.


답변

select해당 테이블 에서 쿼리를 실행하지 않고 테이블의 행 수를 찾는 다른 방법이 있습니다.

모든 MySQL 인스턴스에는 information_schema 데이터베이스가 있습니다. 다음 쿼리를 실행하면 해당 테이블의 대략적인 행 수를 포함하여 테이블에 대한 자세한 정보가 제공됩니다 .

select * from information_schema.TABLES where table_name = 'table_name'\G


답변

간단히:

SELECT COUNT(*) FROM `tablename`


답변

select count(*) from YourTable


답변

그냥

SELECT COUNT(*) FROM table;

그 후 Where로 조건을 지정할 수 있습니다

SELECT COUNT(*) FROM table WHERE eye_color='brown';


답변

테이블에 여러 필드가 있고 테이블이 큰 경우 모든 필드를 메모리에로드하고 다음을 사용하면 성능이 향상되므로 사용하지 않는 * 것이 좋습니다

SELECT COUNT(1) FROM fooTable;