· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1078 10.3.5 使用
PLAN REPLAYER 保存和恢复集群现场信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1080 10 rowspan="4">可扩展性和性能
实例级执行计划缓存(实验特性) | 实例级执行计划缓存允许同一个 TiDB 实例的所有会话共享执行计划缓存。 �→ 量tidb_enable_instance_plan_cache 开启该功能,并通过系统变量tidb_instance_plan_cache_max_size 设 置其最大内存使用量。开启该功能之前,请关闭会话级别的Prepare 语句执行计划缓存和非 Prepare 语句执行 计划缓存。 更多信息,请参考[用户文档](#tidb_enable_instance_plan_cache-从-v840-版本开始引入)。 0 码力 |
5072 页 |
104.05 MB
| 10 月前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1333 10.3.5 使用 PLAN REPLAYER 保存和恢复集群现场信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1335 10 rowspan="4">可扩展性和性能 | 实例级执行计划缓存(实验特性) | 实例级执行计划缓存允许同一个 TiDB 实例的所有会话共享执行计划缓存。 �→ 量tidb_enable_instance_plan_cache 开启该功能,并通过系统变量tidb_instance_plan_cache_max_size 设 置其最大内存使用量。开启该功能之前,请关闭会话级别的Prepare 语句执行计划缓存和非 Prepare 语句执行 计划缓存。 更多信息,请参考[用户文档](#tidb_enable_instance_plan_cache-从-v840-版本开始引入)。 0 码力 |
5095 页 |
104.54 MB
| 10 月前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 977 10.3.5 使用 PLAN REPLAYER 保存和恢复集群现场信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 979 10 语句目前已经支持对高达 40 TiB �→ 的数据进行导入或者添加索引。 | 34
跨数据库绑定执行计划(从 v7.6.0 开始引入) | 在处理上百个 schema @CharlesCheung96 42 2.2.5 错误修复 • TiDB – 修复当 SQL 语句涉及包含多值索引的表时,执行可能报错 Can't find a proper physical plan �→ for this query 的问题 #49438 @qw4990 – 修复自动统计信息收集在 OOM 后卡住的问题 #51993 @hi-rustin – 修复使用 BR 恢复一张 0 码力 |
4807 页 |
101.31 MB
| 1 年前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 993 10.3.5 使用 PLAN REPLAYER 保存和恢复集群现场信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 995 10 #50646 @qw4990 – 修复 Index Path 选中重复索引的问题 #50496 @AilinKid – 修复当 CREATE GLOBAL BINDING 语句中包含 IN() 时,PLAN REPLAYER 无法加载绑定的问题 #43192 @King-Dylan – 修复当多个 analyze 任务失败时,没有正确记录失败原因的问题 #50481 @hi-rustin – 修复系统变量 的性能有积极影响。具体在 TiUP 配置文件中加入: server_configs: tidb: log.level: "error" 同时,推荐启用tidb_enable_prepared_plan_cache,并保证 --db-ps-mode 设置为 auto,这样 Sysbench 就可以 使用预处理语句。关于 SQL 执行计划缓存的功能及监控,请参考执行计划缓存。 553 注意: 0 码力 |
4805 页 |
101.28 MB
| 1 年前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 983 10.3.5 使用 PLAN REPLAYER 保存和恢复集群现场信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 985 10 描述 | 可扩展性与性能 | 跨数据库绑定执行计划 | 在处理上百个 schema 相同的数据库时,针对其中一个数据库的 #42739 @CbcWestwolf – 修复当 DDL jobID 恢复为 0 时 TiDB 节点 panic 的问题 #46296 @jiyfhust – 修复某些情况下相同的查询计划拥有不同的 PLAN_DIGEST 的问题 #47634 @King-Dylan – 修复 UNION ALL 第一个子节点是 DUAL Table 时,执行可能报错的问题 #48755 @winoros – 修复当 0 码力 |
4666 页 |
101.24 MB
| 1 年前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1013 10.3.5 使用 PLAN REPLAYER 保存和恢复集群现场信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1015 10 的执行计划无法被缓存,但是用户很难识别出无法被缓存的 SQL 以及 对应的原因。因此,从 v8.2.0 开始,为系统表STATEMENTS_SUMMARY 增加了新的列 PLAN_CACHE_UNQUALIFIED 和 PLAN_CACHE_UNQUALIFIED_LAST_REASON,来解释计划无法被缓存的原因,协助用户进行性能调优。 更多信息,请参考用户文档。 2.2.1.7 安全 • tats 和 tidb_analyze_ �→ partition_concurrency 未生效的问题 #53972 @hi-rustin – 修复查询 TABLESAMPLE 时可能遇到 plan not supported 报错的问题 #54015 @tangenta – 修复执行 SELECT DISTINCT CAST(col AS DECIMAL), CAST(col AS SIGNED)FROM 0 码力 |
4987 页 |
102.91 MB
| 10 月前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 971 10.3.5 使用 PLAN REPLAYER 保存和恢复集群现场信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 973 10 Queries) 时的资源控制功能,你可以控制 TiDB 如何识别和处理每个资源组的查询。根据需要, �→ 长时间运行的查询可能会被终止或节流,你可以通过准确的 SQL 文本、SQL Digest 或 Plan Digest �→ 来识别查询。在 TiDB v7.3.0,你可以主动监视已知的不良查询,类似于数据库级别的 SQL �→ Blocklist。 | SQL | MySQL 的性能有积极影响。具体在 TiUP 配置文件中加入: server_configs: tidb: log.level: "error" 同时,推荐启用tidb_enable_prepared_plan_cache,并保证 --db-ps-mode 设置为 auto,这样 Sysbench 就可以 使用预处理语句。关于 SQL 执行计划缓存的功能及监控,请参考执行计划缓存。 536 注意: 0 码力 |
4590 页 |
100.91 MB
| 1 年前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 910 10.3.5 使用 PLAN REPLAYER 保存和恢复集群现场信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 912 10 语句的执行计划发生改变时,只要原来的执行计划仍然在 SQL 执行历史内存 表(例如,statements_summary)中,就可以在 CREATE [GLOBAL | SESSION] BINDING 语句中通过指定 plan_digest 绑定原来的执行计划,快速恢复 SQL 性能。此方式可以简化执行计划突变问题的处理,提 升运维效率。 更多信息,请参考用户文档。 33 2.2.1.2 安全 • 支持密码复杂度策略 的性能有积极影响。具体在 TiUP 配置文件中加入: server_configs: tidb: log.level: "error" 同时,推荐启用tidb_enable_prepared_plan_cache,并保证 --db-ps-mode 设置为 auto,这样 Sysbench 就可以 使用预处理语句。关于 SQL 执行计划缓存的功能及监控,请参考执行计划缓存。 510 注意: 0 码力 |
4049 页 |
94.00 MB
| 1 年前 3 lixia@pingcap.com
○
GitHub:https://github.com/zimulala
Agenda
● A brief introduction of NewSQL
●
TiDB
●
Plan optimization
●
Dist SQL
●
Online DDL
●
TiKV
●
Feelings
●
Q & A
A brief introduction of NewSQL
1970s 目前还有少量函数或功能未 实现
Plan optimization
逻辑优化
●
主要依据关系代数的等价交 换做一些逻辑变换
物理优化
●
主要依据数据读取、表连接方式、表连接顺序、排序等技术对查询进行优化。
TP
Parse
Logical Plan
Physical Plan
Exec
Stat
CBO
RBO
Plan optimization
Logical plan
●
Prune column count(*)from t group by id -> select 1 from t id is unique index
●
Aggregation push down
Plan optimization
Decorrelation
select * from t where t.id in (select id+1 as c2 from s where s.c1 < 10 0 码力 |
23 页 |
496.41 KB
| 6 月前 3
| |