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

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)

查询结果

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页