2010-12-02 8 views
1

67 개의 데이터베이스가 있으며 각 데이터베이스에는 둘 이상의 공통 테이블이 있습니다. 그러한 테이블 중 하나가 company이고 모든 데이터베이스에서 해당 테이블의 총 행을 찾고 싶습니다. 모든 데이터베이스에서 총 행 수를 얻기 위해 쿼리를 작성하려면 어떻게해야합니까?여러 데이터베이스에서 테이블의 총 행 수 찾기

답변

3

INFORMATION SCHEMA을 쿼리 할 수 ​​있습니다.

SELECT SUM(table_rows) FROM INFORMATION_SCHEMA.TABLES 
WHERE table_name = 'company' 

당신은 당신이 (당시 정확합니다 table_rows를) MyISAM 테이블에 계산하고 있는지 확인하기 위해 테이블의 엔진 열을 사용하거나, 이노

(table_rows는 옵티 마이저에 의해 사용되는 추정됩니다)

회사 테이블 이상인 경우 테이블 이름을 GROUP BY로 설정할 수 있습니다.

+0

주 : 그 필드 만 InnoDB 테이블에 대한 추정치로 설정 : HTTP : // dev에 여기

모든 스키마를 통해 "회사"라는 이름의 모든 테이블의 총 행 수를 얻을 수있는 예제 쿼리 .mysql.com/doc/refman/5.0/ko/tables-table.html – Orbling

+0

고마워, 그게 내가 원한거야. – yogsma

1

INFORMATION_SCHEMA에서 얻을 수 있습니다. MyISAM 스토리지 엔진을 사용한다면 정확한 행 수를 얻을 수 있습니다. InnoDB를 사용하면 대략적인 수치가됩니다.

select sum(table_rows) 
from information_schema.tables 
where table_name = 'company'; 
+0

참고 :이 필드는 InnoDB 테이블의 예상 값으로 만 설정됩니다. http://dev.mysql.com/doc/refman/5.0/en/tables-table.html – Orbling

+0

@Orbling : Thanks. 나는 이미 그것을 언급했다. –

+0

예. 근사치가 매우 낮아질 수 있습니다. 따라서 InnoDB 엔진 테이블의 경우에는 실제로 잘못되었습니다. – Orbling