sql - EXPLAIN 和 COUNT 返回两个不同的值

标签 sql mysql count sql-execution-plan

我在做:

explain select * from calibration;

它说 52133456345632 行

当我这样做时:

select count(*) from calibration;

我得到 52134563456961

谁能解释一下这是怎么回事?

最佳答案

表统计信息(由 EXPLAIN 使用)基于可能不准确的系统缓存值。

http://dev.mysql.com/doc/refman/5.1/en/using-explain.html说:

For InnoDB tables, this number is an estimate, and may not always be exact.

因此查询的“count()”版本将是准确的,因为它会真正“计算”现有行。 “解释”版本不一定计算您的行数,但可能会使用估计/缓存。 Explain 并非旨在实际用于代码或生产中 - 它只是一种帮助分析查询的工具。

关于sql - EXPLAIN 和 COUNT 返回两个不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2961745/

相关文章:

php - 如何在我的网站上显示数据库信息?

MYSQL查询返回多个用户输入参数的行数

python - 使用 SQLAlchemy 的动态 column_property

python - 尝试使用 Pandas 和 SQLAlchemy 从数据库导入时出错

sql - 当用户的 SQL Server 密码过期时,从 VBA 执行 sp_password(存储过程)

sql - Teradata SQL 语法 - 公用表表达式

php - PDO 与 MySQLi

具有关系的MySQL过滤器查询

python - 如何使用python统计网页有多少个页面

SQL 数据项目 : Incorrect Syntax '$('