1、通过 information_schema.TABLES系统表,统计TABLE_ROWS,可以根据TABLE_SCHEMA筛选具体的库,由于数据库引擎的原因,这只是一个模糊查询:

SELECT `information_schema`.`tables`.`TABLE_NAME` AS `TABLE_NAME`, `information_schema`.`tables`.`TABLE_ROWS` AS `TABLE_ROWS`, `information_schema`.`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA` FROM `information_schema`.`tables` WHERE ( `information_schema`.`tables`.`TABLE_SCHEMA` = 'test' ) ORDER BY `information_schema`.`tables`.`TABLE_ROWS` DESC

查询结果展示如下图:

mysql查询所有表的数据量(MySQL准确和模糊两种方式统计所有表的记录数)(1)

查询结果


2、可以巧妙利用concat()这个方法进行拼接sql查询语句,从而达到精准查询各表记录数。

SELECT concat( 'select "', TABLE_name, '" as 表名 , count(*) as 记录数 from ', TABLE_SCHEMA, '.', TABLE_name, ' union all' ) FROM information_schema. TABLES WHERE TABLE_SCHEMA = 'test';

拼接结果如下:

mysql查询所有表的数据量(MySQL准确和模糊两种方式统计所有表的记录数)(2)

拼接结果

注意:需要删除最后一个union all 哟

查询结果如下:

mysql查询所有表的数据量(MySQL准确和模糊两种方式统计所有表的记录数)(3)

查询结果

,