v8.5.1
tpch 1000sf Q4 测试时未选择tiflash,2张表都有tiflash,全走tiflash 需要24秒,而走tikv要4分多钟
replayer_JtBm7vU_djqEOcNwEeezEg==_1745471396622701050.zip|attachment (107.0 KB)
v8.5.1
tpch 1000sf Q4 测试时未选择tiflash,2张表都有tiflash,全走tiflash 需要24秒,而走tikv要4分多钟
是不是因为子表是用的select * 的原因
其实可以加个 /*+ HASH_JOIN(lineitem,orders) */ 来纠正。
那就是把tiflash的mpp扫描视作了一个带索引的扫描?然后就选了indexjoin?
我觉得这里预估行数estRows已经看到很大的情况下,从tiflash的mpp扫描不能视作一个带索引的扫描,行数这么多,列存扫到这么大的数据,返回还要列转行,这个速度比根据索引扫描要慢得多。
手工再analyze下,有时候就好了
其实是 cost model 的问题,简单是就是 TableRangeScan 比 tiflash Scan 在 cost 更有优势,导致无法走到 tiflash 上。
我们也经常遇到这样的问题,后面就让研发在代码里面直接加上hint,强制走tiflash