Outline 绑定执行计划,改动哪项仍可正常匹配
A. 条件数值
B. 运算公式
C. 字段顺序
D. 表名写法
2 个赞
| A | 条件数值 |
|
Outline 支持对 SQL 进行参数化匹配,WHERE 条件中的常量值差异(如 id=1 和 id=2)不影响命中,这是 Outline 最常见的使用场景。 |
|---|---|---|---|
| B | 运算公式 |
|
表达式结构变化(如 id+1=3 和 id=2)会被视为不同 SQL,无法命中。 |
| C | 字段顺序 |
|
SELECT 中的字段顺序变化会改变 SQL 结构,Outline 无法匹配。 |
| D | 表名写法 |
|
表名的大小写差异会被视为不同 SQL,无法命中。 |
正确答案是 A. 条件数值
Outline(执行计划绑定)的匹配规则,是基于参数化后的 SQL 文本进行比对的:
当使用绑定变量或常量参数时,条件中的数值会被归一化处理,改变数值本身(如WHERE id=1改为WHERE id=2)不会影响 Outline 的匹配,只要 SQL 的结构、语法保持一致即可。
而运算公式、字段顺序、表名写法的改变,会直接修改 SQL 的结构文本,导致 Outline 无法匹配。
1 个赞