数据查询结果和预期不符

【 TiDB 版本】V7.5.4
【遇到的问题:问题现象及影响】
有两张表数据量如下图。一张 1500 万行,一张 2300 万行
表A数据量
表B数据量

分别执行下图中sql,具体结果如下图。首先,第一张图中的结果从业务上看,数量不符。其次,第二句取值为空也不正确。 想知道是哪里使用不正确还是什么问题。

看下两个语句的执行计划

**


**

第一句改成count(*) 什么结果

用explain analyze 看下

count(*) 跟count(fld_guid)返回的结构不一样,表里本来就有空数据?

理论上有空数据count字段返回少,* 返回多,这里是反的

他count* 返回15327560,count字段返回15327118,我应该没看错吧

没看错,count(*) 执行计划应该走的索引,可能索引有问题

这个应该没问题。业务在跑,所以数据是变化的。并且数据少的时候就是对得上的

你的意思是fld_cancel=1的结果是对的,<>1是不对的?

如果过滤的数据量少的话是没有问题的。如果数据量多有问题。