count 结果不一致

今天在查一个计算节点 cpu 打满的问题,登录到该节点上检查慢日志发现了一个诡异的问题,count(*) 和 count(digest) 的结果不一致,请问有没有人遇到过?

tidb 版本 v5.4.2

explain analyze 看下2个的执行计划

我这边也这样,执行计划是一样的,应该是语法问题,百度看count(*)和count(col)在取数上是有区别的

count(1)

count(1)和count(*)是一样的

count(*) 不是查询表中的全部行数 应该比count(disgest) 的数量多吧? 这个为啥显示还少了? 是我一直理解有误区

我这边查的也是不一致,但是count(*)比count(disgest)多

看看是不是这个 issue
https://github.com/pingcap/tidb/issues/34320

:+1: :+1: :+1:应该就是这个了

1 个赞

这个列是不是一个非空列

查过了,没有为null和为空的值

那就不是这个问题了,count(*) 会包含空值,count(col)不统计null,数据反而少了 :smile:

现在总感觉在 slow_query 这张表上做 group by count sum 这种聚合操作不可靠了

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。