Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
Co-authored-by: Aolin <aolinz@outlook.com>
  • Loading branch information
shichun-0415 and Oreoxmt authored Feb 16, 2023
1 parent 43cca36 commit bbf87bf
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion sql-prepared-plan-cache.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ TiDB 优化器对这两类查询的处理是一样的:`Prepare` 时将参数
- 包含 `ignore_plan_cache` 这一 Hint 的查询,例如 `select /*+ ignore_plan_cache() */ * from t`
- 包含除 `?` 外其他变量(即系统变量或用户自定义变量)的查询,例如 `select * from t where a>? and b>@x`
- 查询包含无法被缓存函数。目前不能被缓存的函数有:`database()``current_user``current_role``user``connection_id``last_insert_id``row_count``version``like`
- `Limit` 后面带一个变量 (`LIMIT ?`) 且变量值大于 10000 的执行计划不缓存;
- `LIMIT` 后面带一个变量 (`LIMIT ?`) 且变量值大于 10000 的执行计划不缓存;
- `?` 直接在 `Order By` 后的查询,如 `Order By ?`,此时 `?` 表示根据 `Order By` 后第几列排序,排序列不同的查询使用同一个计划可能导致错误结果,故不缓存;如果是普通表达式,如 `Order By a+?` 则会缓存;
- `?` 紧跟在 `Group by` 后的查询,如 `Group By ?`,此时 `?` 表示根据 `Group By` 后第几列聚合,聚合列不同的查询使用同一个计划可能导致错误结果,故不缓存;如果是普通表达式,如 `Group By a+?` 则会缓存;
- `?` 出现在窗口函数 `Window Frame` 定义中的查询,如 `(partition by year order by sale rows ? preceding)`;如果 `?` 出现在窗口函数的其他位置,则会缓存;
Expand Down
2 changes: 1 addition & 1 deletion system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -1509,7 +1509,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 是否持久化到集群:是
- 类型:布尔型
- 默认值:`ON`
- 这个变量用来控制 Prepared Plan Cache 是否缓存 `Limit` 后面带变量 (`LIMIT ?`) 的执行计划。目前不支持缓存 `Limit` 后面带变量且变量值大于 10000 的执行计划。
- 这个变量用来控制 Prepared Plan Cache 是否缓存 `LIMIT` 后面带变量 (`LIMIT ?`) 的执行计划。目前不支持缓存 `LIMIT` 后面带变量且变量值大于 10000 的执行计划。
### `tidb_enable_plan_replayer_capture`
Expand Down

0 comments on commit bbf87bf

Please sign in to comment.