数据库
首页 > 数据库> > sql – EXPLAIN和COUNT返回两个不同的值

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

作者:互联网

我在做:

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’版本不一定计算您的行,但可能使用估计/缓存. Explain并不打算在代码或生产中实际使用 – 它只是一个帮助分析查询的工具.

标签:sql,mysql,count,sql-execution-plan
来源: https://codeday.me/bug/20190730/1582329.html