【发布时间】:2010-12-02 18:52:01
【问题描述】:
我有 67 个不同的数据库,每个数据库都有不止一个公用表。一个这样的表是company,我想从所有数据库中找到该表中的总行数。如何编写查询以获取所有数据库的总行数?
【问题讨论】:
我有 67 个不同的数据库,每个数据库都有不止一个公用表。一个这样的表是company,我想从所有数据库中找到该表中的总行数。如何编写查询以获取所有数据库的总行数?
【问题讨论】:
您可以查询INFORMATION SCHEMA。
SELECT SUM(table_rows) FROM INFORMATION_SCHEMA.TABLES
WHERE table_name = 'company'
您可以使用表中的 ENGINE 列来查看您是否依赖于 MyISAM 表(此时 table_rows 将是正确的)或 InnoDB(table_rows 将是优化器使用的估计值)
如果你有多个公司表,你可以 GROUP BY 表名:)
【讨论】:
您可以从INFORMATION_SCHEMA 获取此信息。如果您使用的是 MyISAM 存储引擎,这将为您提供准确的行数。如果您使用 InnoDB,则计数将是近似值。
这是一个示例查询,用于获取所有模式中名为“company”的所有表的总行数:
select sum(table_rows)
from information_schema.tables
where table_name = 'company';
【讨论】: