【 TiDB 版本】V7.5.4
【遇到的问题:问题现象及影响】
有两张表数据量如下图。一张 1500 万行,一张 2300 万行
分别执行下图中sql,具体结果如下图。首先,第一张图中的结果从业务上看,数量不符。其次,第二句取值为空也不正确。 想知道是哪里使用不正确还是什么问题。
【 TiDB 版本】V7.5.4
【遇到的问题:问题现象及影响】
有两张表数据量如下图。一张 1500 万行,一张 2300 万行
分别执行下图中sql,具体结果如下图。首先,第一张图中的结果从业务上看,数量不符。其次,第二句取值为空也不正确。 想知道是哪里使用不正确还是什么问题。
看下两个语句的执行计划
第一句改成count(*) 什么结果
用explain analyze 看下
count(*) 跟count(fld_guid)返回的结构不一样,表里本来就有空数据?
理论上有空数据count字段返回少,* 返回多,这里是反的
他count* 返回15327560,count字段返回15327118,我应该没看错吧
没看错,count(*) 执行计划应该走的索引,可能索引有问题
你的意思是fld_cancel=1的结果是对的,<>1是不对的?
如果过滤的数据量少的话是没有问题的。如果数据量多有问题。