统计所有表行数

2022-09-27  本文已影响0人  这货不是王马勺

统计test数据库下所有的表的行数,生产统计语句。

select concat(
    'select "', 
    TABLE_name, 
    '", count(*) from ', 
    TABLE_SCHEMA, 
    '.',
    TABLE_name,
    ' union all'
) from information_schema.tables 
where TABLE_SCHEMA='test';

然后将生成的sql拼接起来(去掉最后一个union all即可),再进行查询

利用information_schema也可以进行查询,但由于统计数据不是实时的,因此需要进行analyze table 表名
之后:

select sum(table_rows) from tables where TABLE_SCHEMA = "test" ;
select table_rows,table_name from tables where TABLE_SCHEMA = "test" ;

如果是8.0版本之后还可以通过修改information_schema_stats_expiry来解决

set global information_schema_stats_expiry=0

此参数决定了字典对象缓存实时更新的时间,该参数默认值为86400,即24小时。

上一篇下一篇

猜你喜欢

热点阅读