我大概明白你的意思了,你的意思是需要bt表先查出关联t表的id,然后带入t表的条件直接去扫描t表。而不是执行hashjoin。
优化器没有这么做的原因,我感觉在于统计信息,图1里面根据你bt表的条件,预估数据是5w4.
当使用=连接的时候,预估数据变成了1条。然后查询符合预期了。
使用in的时候,统计信息还是5w4,执行时间就又变长了。
解决办法,感觉还是建立索引后,尝试index-join hint。会靠谱一些。
https://docs.pingcap.com/zh/tidb/stable/explain-joins#index-join