首页主机资讯mysql怎么查询所有表行数

mysql怎么查询所有表行数

时间2024-09-03 20:50:04发布访客分类主机资讯浏览1199
导读:要查询MySQL中所有表的行数,可以使用以下方法: 使用information_schema数据库: information_schema是一个包含MySQL服务器元数据(例如数据库名、表名、列名等)的数据库。可以通过查询informa...

要查询MySQL中所有表的行数,可以使用以下方法:

  1. 使用information_schema数据库:

information_schema是一个包含MySQL服务器元数据(例如数据库名、表名、列名等)的数据库。可以通过查询information_schema.TABLES表来获取所有表的行数。

以下是查询所有表行数的SQL语句:

SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS
FROM information_schema.TABLES
WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema')
ORDER BY TABLE_ROWS DESC;
    

这条SQL语句会返回一个结果集,其中包含了数据库名(TABLE_SCHEMA)、表名(TABLE_NAME)和表的行数(TABLE_ROWS)。

注意:information_schema.TABLES表中的TABLE_ROWS列只是一个估计值,可能不是精确的行数。如果需要精确的行数,可以使用SELECT COUNT(*) FROM table_name来查询每个表的行数。

  1. 遍历所有表并查询行数:

可以编写一个脚本或存储过程来遍历所有表并查询每个表的行数。以下是一个使用存储过程的示例:

DELIMITER //
CREATE PROCEDURE GetAllTableRowCounts()
BEGIN
    DECLARE done INT DEFAULT 0;
    
    DECLARE tableName CHAR(64);
    
    DECLARE rowCount BIGINT;
    
    DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = DATABASE();
    
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
    

    CREATE TEMPORARY TABLE tempRowCounts (tableName CHAR(64), rowCount BIGINT);
    

    OPEN cur;
    
    read_loop: LOOP
        FETCH cur INTO tableName;
    
        IF done THEN
            LEAVE read_loop;
    
        END IF;
    

        SET @sql = CONCAT('SELECT COUNT(*) INTO @rowCount FROM ', tableName);
    
        PREPARE stmt FROM @sql;
    
        EXECUTE stmt;
    
        DEALLOCATE PREPARE stmt;
    

        INSERT INTO tempRowCounts VALUES (tableName, @rowCount);
    
    END LOOP;
    
    CLOSE cur;
    

    SELECT * FROM tempRowCounts ORDER BY rowCount DESC;
    
    DROP TEMPORARY TABLE tempRowCounts;
    
END //
DELIMITER ;
    

运行上述存储过程后,可以调用GetAllTableRowCounts()来查询所有表的行数:

CALL GetAllTableRowCounts();
    

这将返回一个结果集,其中包含了表名(tableName)和表的行数(rowCount)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: mysql怎么查询所有表行数
本文地址: https://pptw.com/jishu/697196.html
mysql如何查询用户下所有表 mysql怎么查询指定列

游客 回复需填写必要信息