为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【TiDB 版本】v 4.0.11 release版本
【问题描述】tidb跑预处理过程遇到一些问题。比如如下sql:update table1 set name = ? , age = ? where id = ?
它的程序执行步骤将是这样:handleStmtPrepare → Prepare → PrepareStmt → Next
在PrepareExec.Next方法中,它会通过stmts去构造计划p,这个计划是一个物理计划。我在源码学习的过程中观察计划p的 condition 相关的信息,在这里也就是 id = ?(id 是主键索引) ,但是没有找到这些信息。修改一下这个sql,不使用索引,使用普通字段,比如 where name = ?。再次执行得到计划p。现在计划p中就可以找到条件字段condition。
如图是索引字段条件时,condition字段消失的情况。
下图是使用普通字段条件时,计划p的结构,在其中可以找到 condition 信息
请问使用普通字段条件在哪可以看到这些条件呢?
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。