【 TiDB 使用环境】生产环境
【 TiDB 版本】 6.1.7
这里的 read_byte: 7.92G , 表示从tikv里查了这么大数据量吗,但是内存占用好像没有多少
tikv有多个,分到每个占用就不多了
其实我的psnTemp 表只有25条数据,left join 的结果 也没有多少 数据,怎么会查这么多数据啊
7.92G的数据量,内存占用也没多大啊
acd表回表时读了479万条数据
不是应该 psnTemp表与act表串表10000条数据,然后再回表吗
哪位大佬能帮忙解惑下吗
你看loops啊,整个过程一共loops了那么多遍,用乘法算一遍,大概read了多少就差不多了吧?
针对这个SQL, tidb的执行计划是不是非常差啊
上tiflash。 聚合没有办法下推的话,怎么都快不了。
就是执行计划或优化器不够优秀啊
本来串表之后只有10000条数据,但是tidb把大表全表数据都取到内存里了
优化器不行呀
我觉的你把这个表的统计信息重新收集一下,执行计划会变的很不一样。
这张是临时表,刚刚生成的
有没有专家在啊
你这就是优化器觉得psntemp这个表比aac表大,所以先让aac和acd表进行了hashjoin,所以我让你收集下psntemp表的统计信息,或者你可以指定下hint让psntemp和acd表先进行join试下
更新的psntemp表的统计信息,执行计划是一样的
hint让psntemp和acd表先进行join, 这个是怎么指定来着