如何快速的获取一个库下的各个表的记录数,最佳性能,以mysql为例

请教各位一个问题,最近工作中遇到一个涉及数据库表记录数的问题,如何快速的获取一个库下的各个表的记录数,即数据行数(精确数量),最佳性能,以mysql为例?

把your_schema替换成你的schema名字

SELECT table_name,table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your_schema';

参考以下sql进行查询:

use information_schema;

SELECT table_name,table_rows FROM TABLES WHERE table_schema='数据库名'

查询结果:

img

你问的这些都是DBA常用的一些运维,建议看我的博客


当前数据库实例的所有数据库及其容量大小:
select a.SCHEMA_NAME, a.DEFAULT_CHARACTER_SET_NAME,a.DEFAULT_COLLATION_NAME,
sum(table_rows) as '记录数',
sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',
sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)',
sum(truncate((data_length+index_length)/1024/1024, 2)) as '总大小(MB)',
sum(truncate(max_data_length/1024/1024, 2)) as '最大值(MB)',
sum(truncate(data_free/1024/1024, 2)) as '空闲空间(MB)'
from INFORMATION_SCHEMA.SCHEMATA a
left outer join information_schema.tables b
on a.SCHEMA_NAME=b.TABLE_SCHEMA
group by a.SCHEMA_NAME, a.DEFAULT_CHARACTER_SET_NAME,a.DEFAULT_COLLATION_NAME
order by sum(data_length) desc, sum(index_length) desc;