【问题标题】:Finding total number of rows of tables across multiple databases跨多个数据库查找表的总行数
【发布时间】:2010-12-02 18:52:01
【问题描述】:

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

【问题讨论】:

    标签: sql mysql count


    【解决方案1】:

    您可以查询INFORMATION SCHEMA

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

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

    如果你有多个公司表,你可以 GROUP BY 表名:)

    【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    猜你喜欢
    • 2010-10-11
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多