【发布时间】:2011-02-27 01:15:07
【问题描述】:
我在做:
explain select * from calibration;
上面写着 52133456345632 行
当我这样做时:
select count(*) from calibration;
我收到 52134563456961
有人能解释一下这里发生了什么吗?
【问题讨论】:
-
你没有在这两个命令的执行之间插入新行吗?
-
只是为了澄清:计数版本将是准确的,因为它会真正计算您现有的行。解释版本不计算您的行数,但可能使用估计/缓存。 Explain 并不打算在代码或生产环境中实际使用 - 它只是帮助分析查询的工具。
-
henrik 请把它放在答案中,以便我将其标记为正确
-
我直接将它添加到 Bill Karwins 的答案中,因为他的第一个也是正确的,只是不够明确。所以你应该接受他的。
-
有趣的是,没有人评论一张表中有 5 万亿行
标签: sql mysql count sql-execution-plan