查找跨多个数据库的表的总行数

时间:2010-12-02 18:52:01

标签: sql mysql count

我有67个不同的数据库,每个数据库都有多个公共表。一个这样的表是company,我想从所有数据库中找到该表中的总行数。如何编写查询以获取所有数据库的总行数?

2 个答案:

答案 0 :(得分:3)

您可以查询INFORMATION SCHEMA

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

您可以使用表中的ENGINE列来查看您是否依赖于MyISAM表(table_rows将是正确的),或者InnoDB(table_rows将是优化程序使用的估计值)

如果您只有公司表,则可以使用GROUP BY tablename:)

答案 1 :(得分:1)

您可以从INFORMATION_SCHEMA获取此信息。如果您使用的是MyISAM存储引擎,这将为您提供准确的行数。如果您使用InnoDB,则计数将为近似值。

这是一个示例查询,用于获取所有模式中名为“company”的所有表的总行数:

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