mysql show total和count查询中的行数不同

3mpgtkmj  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(706)

这个问题在这里已经有答案了

为什么phpmyadmin结果中估计的行数非常不同(2个答案)
两年前关门了。
我对mysql中的行数感到困惑。phpmyadmin和count查询返回的总行数不同。
我的表结构是 InnoDB .

Showing rows 0 - 24 (655537 total, Query took 0.1527 seconds.)

这是浏览表时的结果。
我的计数查询是

SELECT count(*) FROM `table_name`

这将作为 602030

r6vfmomb

r6vfmomb1#

当您使用phpmyadmin或heidisql等工具进行浏览时,会执行如下查询:

SHOW TABLE STATUS LIKE 'table';

这个值是不准确的,如果您多次运行它,它总是给出不同的结果。
相反,问题是:

select count(*) from table

实际上是在计算记录,并给出正确的结果。
正如mysql文档中提到的https://dev.mysql.com/doc/refman/8.0/en/show-table-status.html:
一些存储引擎(如myisam)存储精确的计数。对于其他存储引擎,比如innodb,这个值是一个近似值,可能与实际值相差40%到50%。在这种情况下,请使用select count(*)获得准确的计数。

n3ipq98p

n3ipq98p2#

mysql说:通过innodb,总数仅仅是计数的近似值。
https://dev.mysql.com/doc/refman/8.0/en/show-table-status.html

相关问题