写点什么

MySQL 查询数据库表记录数

作者:源字节1号
  • 2022 年 9 月 28 日
    浙江
  • 本文字数:576 字

    阅读完需:约 2 分钟

MySQL查询数据库表记录数

mysql 统计一个数据库里所有表的数据量,最近在做统计想查找一个数据库里基本所有的表数据量,数据量少的通过 select count 再加起来也是可以的,不过表的数据有点多,不可能一个一个地查。记得在 Navicat 里,选择一个数据量,点击表,如图:



那么如何通过 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

用户头像

源字节1号

关注

一个着迷于技术又喜欢不断折腾的技术活跃者 2022.03.09 加入

一个着迷于技术又喜欢不断折腾的技术活跃者。喜欢并热爱编程,执着于努力之后所带来的美好生活!

评论

发布
暂无评论
MySQL查询数据库表记录数_源字节1号_InfoQ写作社区