统计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小时。
网友评论