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 删除,就可以运行统计了。

相关推荐
倔强的石头_21 小时前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
云技纵横21 小时前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
沉默王二21 小时前
面试官:RAG 不用向量数据库,用 MySQL 硬扛?我:100 万向量不是很轻松?
mysql·面试·ai编程
冬奇Lab1 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
小猿姐1 天前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
ClouGence2 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
云技纵横2 天前
Gap Lock 死锁实战:5 秒在本地复现 MySQL 间隙锁死锁
后端·mysql
无响应de神2 天前
三、用户与权限管理
数据库·mysql
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql