Navicat:显示的行数与表中实际的行数不一致

Posted 孙 悟 空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Navicat:显示的行数与表中实际的行数不一致相关的知识,希望对你有一定的参考价值。

文章目录


1 Navicat 显示的行数


2 实际的行数

SELECT
	COUNT(*) 
FROM
	table1


3 原因

mysql 在当前连接下的 information_schema 数据库中的 TABLES 表中,存放了当前连接下的所有数据库的所有表的信息,其中TABLE_ROWS 字段记录了表中数据的行数。

  • information_schema 数据库

  • TABLES

    可以看出,TABLE_ROWS 字段的行数与Navicat显示的行数一致。

为什么与实际的行数不一致呢?

MySQL官方文档对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.
行数。一些存储引擎(如MyISAM)存储确切的计数。对于其他存储引擎,如InnoDB,该值是一个近似值,可能与实际值相差40%至50%。在这种情况下,请使用SELECT COUNT(
)获得准确的计数。

所以,不要被MySQL给的行数迷惑了。要想获得一张表真实的行数,还得是 SELECT COUNT(*)


参考连接:https://www.cnblogs.com/coderxx/p/15633365.html

以上是关于Navicat:显示的行数与表中实际的行数不一致的主要内容,如果未能解决你的问题,请参考以下文章

「日志」Navicat统计的行数竟然和表实际行数不一致

Navicat:截断表或者清空表后行数不为0

Navicat:截断表或者清空表后行数不为0

与数据源相比,UITableView 显示的行数不一致

sql server查询结果集复制出来的行数和在SSMS上的行数不一致

MySql 的行数并插入到计数的表中