MySQL中count(*)和information_schema.tables中的table_rows值不相同

news2024/9/21 12:35:38

前两天我还在高高兴兴地写了一篇文章《一条SQL查询出MySQL数据库中所有表的数据量大小》,心想这也太方便了,只用一条SQL就能统计出所有表的数据量,但没想到,最终还是翻车了。。。

翻车过程如下:

有一张表,在information_schema.tables中,其table_rows显示为1316万行,如图所示:
在这里插入图片描述
但是使用count(*)来查询该表的行数,结果居然为6055万行。
在这里插入图片描述
为什么两者不一致,且差距如此巨大呢?

翻车原因:
我们先来看一下官网的解释:

The TABLES table provides information about tables in databases.

information_schema.tables这张表提供数据库中表的一些信息;

TABLE_ROWS: The number of rows. Some storage engines, such as MyISAM, store the exact count. For other storage engines, such as InnoDB, this value is an approximation, and may vary from the actual value by as much as 40% to 50%. In such cases, use SELECT COUNT(*) to obtain an accurate count.

table_rows这个字段,其值为行的个数。对于一些存储引擎,比如MyISAM,存储的是确切的行数。但是对于其他的存储引擎,比如InnoDB,这个值则是估算的,可能与实际值相差40%至50%。这种情况下应该使用COUNT(*)来获取准确的行数统计。

For InnoDB tables, the row count is only a rough estimate used in SQL optimization. (This is also true if the InnoDB table is partitioned.)

对于InnoDB表,行计数只是SQL优化中使用的粗略估计。(如果InnoDB表被分区,这也是正确的。)

想要获取更多信息,可以参考MySQL官网中的The INFORMATION_SCHEMA TABLES Table;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/58162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【多目标进化优化】 MOEA 测试函数

声明 本文内容来源于 《多目标进化优化》 郑金华 邹娟著,非常感谢两位老师的知识分享,如有侵权,本人立即删除,同时在此表示,本文内容仅学习使用,禁止侵权,谢谢! 注:本文…

HTML+CSS制作简单的家乡网页 ——我的家乡介绍广东 web前端期末大作业

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

基于STM32单片机的温度报警器(数码管)(Proteus仿真+程序)

编号:26 基于STM32单片机的温度报警器(数码管) 功能描述: 本设计由STM32F103单片机最小系统DS18B20温度传感器数码管显示模块声光报警模块独立按键组成。 1、主控制器是STM32F103单片机 2、DS18B20温度传感器测量温度 3、数码管显示温度值&…

数字化改革“1612”详解

背景 2021年2月18日,浙江省开始数字化改革建设,通过一年的建设,取得了光辉成绩。2022年2月28日,在省数字化改革推进大会,回顾一年来数字化改革的主要成效,研究部署2022年数字化改革目标任务,在…

Spring框架(六):SpringTransaction事务的底层原理、xml配置和注解配置

SpringTransaction事务的底层原理、xml配置和注解配置引子Spring事务入门搭建Test环境基于XML的方式配置事务Spring事务的隔离级别Spring事务的传播行为通过Annotation方式配置Spring的事务引子 痛定思痛,主要问题出现在自己雀氏不熟悉框架底层、一些面试题&#x…

【源码分析】Springboot启动流程源码分析

1.简介 springboot版本:2.7.2 SpringApplication类是用来执行Spring框架启动的引导类。 有两种方式可以进行启动引导: 通过静态方法SpringApplication.run启动。先创建SpringApplication实例,在调用的实例方法run进行启动。 无论是以上哪种…

资源管理管理

资源管理目录概述需求:设计思路实现思路分析1.PMI hr的理念2.双因素的理论3.马斯洛的需求层析理论4.延伸5.X,Y理论Z 理论期望理论:亚当斯公共理论边际福利,光环效应,额外待遇,皮的原理,KISS原理…

阿里P9大牛带你在简历上写精通Spring与Boot高级功能

前言 蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员&#…

QT - 模型与视图

经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。 MVC 不是一…

银行 测试|测试开发 面试真题|面经 汇总

招银测开面经 一面 1.面向对象3大特征 2.java是否能多继承,怎么实现多继承 3.抽象类 4.数据库特性,隔离级别 5.sql语句查找 6.static关键字的使用 7.手撕:寻找字符串出现频率最高的字符 8.代码改进和测试 二面 1.先闲聊了几句&…

Python面向对象编程

本篇内容: 1、反射  2、面向对象编程  3、面向对象三大特性  4、类成员  5、类成员修饰符  6、类的特殊成员  7、单例模式 反射 python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象…

m基于GA遗传算法的高载能负荷响应优化控制模型matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 高载能企业执行子站接收负荷调整指令后,需将有功功率、无功功率调整总量合理分配给各用能设备/系统。研究高载能负荷响应优化控制模型,建立以高载能企业响应效益最优为目标…

ccf序列查询新解python满分_纯数学规律(学霸怎么想到的啊......)

题目 思路和代码 这题我也就看了好几个小时吧。终于!有点懂了! 上午看懂了用双指针写《下一个排序》后就在看这题。70分的代码很好写也很好想,就是模拟fx和gx,然后遍历一趟,得到最终的结果。 看了学霸的代码&#x…

使用桥梁振动自动识别车辆(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

Qt在线安装教程(详细图文)

Qt在线安装教程(详细图文一、前言二、QT账号的注册三、QT的安装的镜像四、安装的过程一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡,小伙伴们,让我们一起来学习Qt在线安装。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连) 二、QT账号…

js-mark新时代的网页标记容器

js-mark 🖍️️ ✨ 它提供了一组可交互操作的工具来注释网页内容 ✨🖍️ js-mark是一个JavaScript库,用于在浏览器。他是一个可以在任何网页做标记的前端库, 它提供了一组可交互操作的工具来注释网页内容。 支持标记文本和 持久化存储与还原…

LSTM和双向LSTM讲解及实践

目录: RNN的长期依赖问题LSTM原理讲解双向LSTM原理讲解keras实现LSTM和双向LSTM RNN 的长期依赖问题 在上篇文章中介绍的循环神经网络RNN在训练的过程中会有长期依赖的问题,这是由于RNN模型在训练时会遇到梯度消失(大部分情况)或者梯度爆炸(很少&…

网络1323的分类行为

( A, B )---2*30*2---( 1, 0 )( 0, 1 ) 用网络分类A和B,让A是(0,1)(1,1),让B是(1,0)(1,1)。测试集为&#xf…

[附源码]计算机毕业设计springboot学生在线考试系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…