为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:3.0
- 【问题描述】: 现在我的业务有一条查询业务的sql,类似 select * from table_a a where a.a1 in (id1,id2,id3…) and a.a2 = ‘xxx’ 这里a1,a2都有设置索引,我的查询业务有个特点是a1 in 里面的id数量是不确定的,时多时少。 最近发现一个情况就是这条sql走了索引a2,当a1 in里面的id很多的时候,这条sql会执行的很慢,查询时间差不多就是随着a1 in里面的id增多时间递增。当我手动use index(a1)时,不论a1 in的id多还是少,执行时间都是很快的,统计信息等等也收集了,但是执行计划还是选择走a2索引。这里想用一下计划绑定,请问这种in的可以使用计划绑定不?具体怎么使用呢?我在看https://pingcap.com/docs-cn/stable/reference/performance/execution-plan-bind/ 【 执行计划绑定】一文没有看到如何对这种in的创建计划绑定
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。