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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙 悟 空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值