mysql查询数据的总记录数

领导让获取数据库中的所有记录总数,网上查了一会,看到了很多都是不能执行,我这小性子安耐不住了,开始暴怒,最后的最后看下来应该缺少了一个关键字,还自以为是的想不知道是不是mysql版本导致的这个问题。道行不深,继续修炼。

语句一定要这么写,首先use information_schema
USE information_schema;
-- 查询所有表的记录数
SELECT SUM(table_rows) FROM TABLES WHERE TABLE_SCHEMA = 'testdb' ORDER BY table_rows DESC; 
-- 或者这么写
SELECT SUM(table_rows) FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'testdb' ORDER BY table_rows DESC; 
-- 查询该schema下的所有表数量
SELECT count(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'testdb' ORDER BY table_rows DESC; 

如果查询分布式数据库的schema,则可能需要where语句用like TABLE_SCHEMA ‘testdb%’ 因为分布式数据库会有很多个schema,这个需要留意

如您想查询系统相关的信息可以从这个information_schema.TABLES表中去查询
名称含义
table_catalog数据表登记目录
table_schema数据表所属的数据库名,注意分部署数据库会有多个分片数据库
table_name表名称,数据库中对应的表名称
table_type表类型[system view|base table]
engine使用的数据库引擎[MyISAM|CSV|InnoDB],创建表时指定的数据库引擎
version版本,默认值10
row_format行格式[Compact|Dynamic|Fixed]
table_rows表里所存多少行数据
avg_row_length平均行长度
data_length数据长度
max_data_length大数据长度
index_length索引长度
data_free空间碎片
auto_increment做自增主键的自动增量当前值
create_time表的创建时间
update_time表的更新时间
check_time表的检查时间
table_collation表的字符校验编码集
checksum校验和
create_options创建选项
table_comment表的注释、备注

研究此表中的特性,对统计系统中的数据有很大作用

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐