· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 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 |  |