where查询列顺序不同导致执行计划不同

【TiDB 使用环境】生产环境
【TiDB 版本】V7.1.5
【遇到的问题:问题现象及影响】
业务表索引分布情况


错误的执行计划,执行耗时接近10秒

调整where查询列的顺序,可以走到正确的索引,执行耗时0.02秒


好像bug啊 :joy:

我也遇到类似问题,确定和顺序有关,只能根据执行计划调整

麻烦试下将 in 改为 = 来查询,并调整列顺序来看执行计划是否不同

在大多数情况下,TiDB的SQL 引擎对WHERE子句中的条件顺序是不敏感的。也就是说,理论上来说,两个查询应该生成相同的执行计划。