提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:鲍佳佳|2021-04-07 11:32:30.870|阅读 172 次
概述:在上周的在 MySQL 中获取高级的行计数(第 2 部分)文章中,我们使用了原生的 COUNT() 函数来计算唯一值以及满足条件的值。在今天的最后一部分中,我们将学习如何从数据库或整个模式中的所有表中获取行计数。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
在上周的在 MySQL 中获取高级的行计数(第 2 部分)文章中,我们使用了原生的 COUNT() 函数来计算唯一值以及满足条件的值。在今天的最后一部分中,我们将学习如何从数据库或整个模式中的所有表中获取行计数。
查询 information_schema 数据库
你不必对每个表运行计数查询以获取行数。如果你计划多次运行它,这将是繁琐的并且可能需要外部脚本。
INFORMATION_SCHEMA 数据库是每个 MySQL 实例存储有关 MySQL 服务器维护的所有其他数据库的信息的位置。它有时也称为数据字典和系统目录,是查找有关数据库、表、列的数据类型或访问权限的信息的理想位置。
INFORMATION_SCHEMA“TABLES”表提供有关数据库中还有哪些其他表的信息。通过查询“TABLES”表,你可以使用单个查询获得精确的行计数。
一个数据库的表计数
获取一个数据库的行计数很容易。只需添加一个 WHERE 子句,其条件是 table_schema 列与你的数据库名匹配:
SELECT TABLE_NAME, TABLE_ROWS FROM `information_schema`.`tables` WHERE `table_schema` = 'YOUR_DB_NAME';+------------+------------+
整个模式的表计数
获取模式中所有数据库的行数需要更多的工作量。为此,我们必须使用已准备的语句。
在语句中,group_concat() 函数将多行打包成一个字符串,以便将表名列表转换为由联合连接的多个计数的一个字符串。
Select -- Sort the tables by count concat( 'select * from (', -- Aggregate rows into a single string connected by unions group_concat( -- Build a "select count(1) from db.tablename" per table concat('select ', quote(db), ' db, ', quote(tablename), ' tablename, ' 'count(1) "rowcount" ', 'from ', db, '.', tablename) separator ' union ') , ') t order by 3 desc') into @sql from ( select table_schema db, table_name tablename from information_schema.tables where table_schema not in ('performance_schema', 'mysql', 'information_schema') ) t;
我们的串联 select 语句保存在 @sql 变量中,以便我们可以将它作为已准备的语句运行:
-- Execute @sql关于速度和准确性
这些查询在 MyISAM 表上运行得非常快,并生成非常精确的结果。但是,如 InnoDB 之类的事务存储引擎不会在表中保留内部的行计数。而是,在表中采样许多随机页,然后估计整个表的总行数。MVCC(一种允许并发访问行的功能)的后果是,在任何一个时间点,都会有多个版本的行。因此,实际的 count(1) 将取决于事务开始的时间及其隔离级别。像 InnoDB 这样的事务存储引擎,你可以预料其计数的准确性为实际行数的 ±4% 以内。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢