mysql 查看数据库中所有表的行数(2)

之前写过了,如果需要查询某个数据库中所有表的行数, 可以通过information_schema.tables来统计,但是由于mysql8.0的缓存机制,导致这个数据和count(*)的结果不一致

sql 复制代码
SELECT
	TABLE_name,
	table_rows 
FROM
	information_schema.TABLES 
WHERE
	TABLE_SCHEMA IN ( 'table_data' ) 
ORDER BY
	table_rows DESC;

table_data 为所需要查询的数据库

因此我们需要使用count(*)来统计数据,但是逐一表来统计比较麻烦,下面还有一种快捷方式

首先通过information_schema.tables 来组合语句

sql 复制代码
select concat(
    'select "', 
    TABLE_name, 
    '", count(*) from ', 
    TABLE_SCHEMA, 
    '.',
    TABLE_name,
    ' union all'
) from information_schema.tables 
where TABLE_SCHEMA in ('table_data');

将输出的结果拷贝出来,将最后一行的union all 删除,就可以运行统计了。

相关推荐
aaa小葵14 小时前
LangGraph
数据库·人工智能
wWYy.14 小时前
Mysql:Read View
数据库·mysql
—Miss. Z—15 小时前
存储过程、用户定义函数、触发器和游标
数据库·mysql
小码农 - 初16 小时前
MySQL 的约束
mysql
文人sec16 小时前
MySQL事务与索引做了什么?
android·笔记·mysql
Dear~yxy17 小时前
MySQL企业级实战
数据库·mysql
晚安code17 小时前
MySQL 开发规范清单:建表、索引、SQL、ORM 四块一次讲透
数据库·sql·mysql
ERD Online17 小时前
docker-compose 一键部署的 MIT 开源数据库建模平台
数据库·docker·开源
Data_Journal17 小时前
如何使用 Java 和 Jsoup 解析 HTML
大数据·开发语言·数据库·python·scrapy
lsz15259017 小时前
Citrix虚拟化实战:数据库虚拟机扩容流程图文简解
数据库·数据库扩容·citrix虚拟化·平台数据库扩容·虚拟机快照