方法1 直接查询,方法简单,但达不到想要的效果,记录数稍微多一点,总数就偏高
use db_name;
select table_name, table_rows from information_schema.tables
where table_schema = 'db_name'
得到的结果样式为:
| table_name | table_rows |
|---|---|
| table1 | m行 |
| table2 | n行 |
只要数据表内记录行数一多,记录数就比我们想要的结果偏高。
方法2 拼接 select count(主键id) 语句
use information_schema;
select group_concat('select ', '"', table_name, '",', ' count(id) from ',
TABLE_SCHEMA,
'.',
table_name
separator ' union all \n') from information_schema.TABLES
where TABLE_SCHEMA = 'db_name';
可以得到拼接的查询语句
select "table1", count(id) from db_name.table1 union all
select "table2", count(id) from db_name.table2 union all
select "table3", count(id) from db_name.table3
结尾填上分号运行一次即可。
本文介绍两种方法来准确获取数据库中各表的实际记录数,避免因数据量大导致的计数偏差。方法一是直接查询可能产生误导,方法二是通过拼接SQL语句获取每个表的count(id)。
2932

被折叠的 条评论
为什么被折叠?



