mysql多张数据表统计记录总数(thinkphp)
今天做⼀个⼩功能,统计⼏个数据表记录的条⽬总和。这⼏张表并没有相关联的字段。最简单的想法是count每个数据表的条⽬,然后将数字累加。但是这样要执⾏3次查询,效率⽐较低。
mysql语句多表查询查了下资料,可以这样做:
USE information_schema;
SELECT table_name,table_rows FROM TABLES WHERE TABLE_SCHEMA ='education'ORDER BY table_rows DESC;
怎样做网址education 为要统计的数据库名,table_name是表名,table_rows 是表的总条⽬,也可以在where 后⾯指定要统计的表名。
快速排序算法及其改进算法研究分析⼜看了⼏篇⽂章,都是复制黏贴。
⽆意到⼀篇information_schema的介绍,引⽤其中的⼏段话:
MySQL的information_schema数据库是什么,有什么作⽤?
c语言有趣的小游戏编程代码 ⼤家在安装或使⽤MYSQL时,会发现除了⾃⼰安装的数据库以外,还有⼀个 information_schema数据库。information_schema数据库是做什么⽤的呢,使⽤WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本⽚⽂章后,你就会对
information_schema数据库有所了解。
information_schema数据库是MySQL⾃带的,它提供了访问数据库元数据的⽅式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候⽤于表述该信息的其他术语包括“数据词典”和“系统⽬录”。
在 MySQL中,把 information_schema 看作是⼀个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,⽽不是基本表,因此,你将⽆法看到与之相关的任何⽂件。
可我最想知道,怎么在php中⽤information_schema。既然它是个数据库,猜想是要有数据库配置才能访问,也就是说除了配置⾃⼰使⽤的主数据库,还要配置information_schema的连接⽅式。⼏番周折,发现没那么复杂,只配置⼀次主数据库就可以了。
在thinkphp中使⽤information_schema(php中也是⼀样的sql语句,只是查询数据库的⽅式不同罢了):
$Model=new Model();
$sql="select table_rows FROM INFORMATION_SCHEMA.TABLES WHERE table_name in ('table1','table2','table3')";
$result=$Model->query($sql);
$rowCounts=0;
自动化测试需要学什么foreach($result as$key=>$value){
$rowCounts+=(int)$value["table_rows"];linux培训速成班
}
$rowCounts统计了⼏张表的总数⽬和,只是简单这么⼀句sql,感觉提升不少效率。简化了统计数据表总条⽬的流程,算是摸到了information_schema的⼀点点⽪⽑。以后应该花时间研究⼀下information_schema的使⽤⽅法,相信对数据的统计有很⼤的帮助。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论