那么如何通过sql实现呢?在mysql里是可以查询information_schema.tables这张表的
SELECT table_rows,table_name FROM information_schema.tables WHERE TABLE_SCHEMA = '数据库名称'and table_name not in ('不查询的表名称') ORDER BY table_rows DESC;
OK,本来还以为已经没问题了,然后还是被反馈统计不对,后来去找了资料说是对付MyISAM才是精确的统计数据,但是对付InnoDB引擎的,可能与实际值相差 40% 到 50%,以是只是一个大概的统计以是针对这种情形,要变动存储引擎,肯定是不太得当,由于InnoDB是默认的存储引擎,能支持事务外健,并发情形性能也比较好。连续找资料,精确的sql如下:
selecttable_schema as '数据库',table_name as '表名',table_rows as '记录数',truncate(data_length/1024/1024, 2) as '数据容量(MB)',truncate(index_length/1024/1024, 2) as '索引容量(MB)'from information_schema.tableswhere table_schema='test'order by table_rows desc, index_length desc;
查询结果如下:

如若转载,请注明出处:开源字节 https://sourcebyte.cn/article/240.html