加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL查询数据库表记录数

发布时间:2022-10-18 14:31:12 所属栏目:MySql教程 来源:互联网
导读: mysql统计一个数据库里所有表的数据量,最近在做统计想查找一个数据库里基本所有的表数据量,数据量少的通过select count再加起来也是可以的,不过表的数据有点多,不可能一个一个地查。记

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

MySQL 查询数据_mysql查询去掉重复数据_mysql 查询json数据

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

select
table_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.tables
where table_schema='test'
order by table_rows desc, index_length desc;

查询结果如下:

mysql查询去掉重复数据_mysql 查询json数据_MySQL 查询数据

如若转载MySQL 查询数据,请注明出处:开源字节

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!