【 TiDB 使用环境】测试
【 TiDB 版本】7.1.1,mysql5.7
【资源配置】
tidb:3台tikv、3台tidb,配置都是32核,128G配置
mysql:1台,4核,8G配置
表数据量一样,且是同一张表
mysql查询结果4秒,tidb查询结果144秒
他们执行计划分布如下
【 TiDB 使用环境】测试
【 TiDB 版本】7.1.1,mysql5.7
【资源配置】
tidb:3台tikv、3台tidb,配置都是32核,128G配置
mysql:1台,4核,8G配置
表数据量一样,且是同一张表
mysql查询结果4秒,tidb查询结果144秒
表里有多少数据呢?
600万
https://docs.pingcap.com/zh/tidb/stable/optimizer-hints#no_decorrelate
试下 NO_DECORRELATE()这个HINT,看有没有效果。
PS:这个HINT要放到子查询里
看了文档,这个hint为了使用apply算子的,但是楼主执行计划确实用了apply算子
能上传下explain analyze的结果吗
把这里拖长一点,看下tidb里用了哪两个索引
analyze没,走最优的索引了么,如果做多表关联聚合分析操作,可以用tiflash,很快的
返回多少数据?
上传了execl版本的执行计划,方便大家仔细阅读执行计划
加任何hint都没优化效果
你上传的这个走的是tiflash啊
自动选择tiflash,因为我这个表有tiflash副本,理论上走tiflash也不会这么差的性能啊
聚合查询的时候tiflash超快,也是要看应用场景的
我强制走tikv,走tikv性能也很差,我晚点上传执行计划
你这个explain analyze执行了多久,这个实际走的tiflash ,前面的explain走的tikv ,你SQL上加个这个hint /+ READ_FROM_STORAGE(TIKV[ca,aa])/ 试试
用户 HASH_JOIN(t1_name [, tl_name …]) HINT试试呢
严重怀疑是Tidb使用的存储太拉垮 600W数据索引扫描都要近1分钟
网络情况也可以看下。