TiDB v5.2 中文手册AST 和具体的参数值生成执行计划。 当开启执行计划缓存后,每条 Prepare 语句的第一次 Execute 会检查当前查询是否可以使用执行计划缓存, 如果可以则将生成的执行计划放进一个由 LRU 链表构成的缓存中;在后续的 Execute 中,会先从缓存中获取 执行计划,并检查是否可用,如果获取和检查成功则跳过生成执行计划这一步,否则重新生成执行计划并放 入缓存中。 在当前版本中,当 Prepare 语句中包含 ?; • 查询包含的 Window 函数的 window frame 定义含有 ?; • 查询引用了分区表; LRU 链表是设计成 session 级别的缓存,因为 Prepare / Execute 不能跨 session 执行。LRU 链表的每个元素是一个 key-value 对,value 是执行计划,key 由如下几部分组成: • 执行 Execute 时所在数据库的名字; txn-batch 配置项,用于控制恢复速率 • 改进提升 – TiKV 支持批量 Split 和空的 Split 命令,使得 Split 可以批量进行 – TiKV 添加 RocksDB 双向链表支持,提升逆序扫性能 – Ansible 新增 iosnoop 和 funcslower 两个 perf 工具,方便诊断集群状态 – TiDB 优化慢日志输出内容,删除冗余字段 • 行为变更0 码力 | 2259 页 | 48.16 MB | 1 年前3
TiDB v5.1 中文手册AST 和具体的参数值生成执行计划。 当开启执行计划缓存后,每条 Prepare 语句的第一次 Execute 会检查当前查询是否可以使用执行计划缓存, 如果可以则将生成的执行计划放进一个由 LRU 链表构成的缓存中;在后续的 Execute 中,会先从缓存中获取 执行计划,并检查是否可用,如果获取和检查成功则跳过生成执行计划这一步,否则重新生成执行计划并放 入缓存中。 在当前版本中,当 Prepare 语句中包含 ?; • 查询包含的 Window 函数的 window frame 定义含有 ?; • 查询引用了分区表; LRU 链表是设计成 session 级别的缓存,因为 Prepare / Execute 不能跨 session 执行。LRU 链表的每个元素是一个 key-value 对,value 是执行计划,key 由如下几部分组成: • 执行 Execute 时所在数据库的名字; txn-batch 配置项,用于控制恢复速率 • 改进提升 – TiKV 支持批量 Split 和空的 Split 命令,使得 Split 可以批量进行 – TiKV 添加 RocksDB 双向链表支持,提升逆序扫性能 – Ansible 新增 iosnoop 和 funcslower 两个 perf 工具,方便诊断集群状态 – TiDB 优化慢日志输出内容,删除冗余字段 • 行为变更0 码力 | 2189 页 | 47.96 MB | 1 年前3
TiDB v5.3 中文手册AST 和具体的参数值生成执行计划。 当开启执行计划缓存后,每条 Prepare 语句的第一次 Execute 会检查当前查询是否可以使用执行计划缓存, 如果可以则将生成的执行计划放进一个由 LRU 链表构成的缓存中;在后续的 Execute 中,会先从缓存中获取 执行计划,并检查是否可用,如果获取和检查成功则跳过生成执行计划这一步,否则重新生成执行计划并放 入缓存中。 在当前版本中,当 Prepare @x='123';此时为了保证结果和 MySQL 兼容性,需要每次对参数进行调整,故不会缓存; • 会访问 TiFlash 的计划不会被缓存; LRU 链表是设计成 session 级别的缓存,因为 Prepare / Execute 不能跨 session 执行。LRU 链表的每个元素是一个 key-value 对,value 是执行计划,key 由如下几部分组成: • 执行 Execute 时所在数据库的名字; txn-batch 配置项,用于控制恢复速率 • 改进提升 – TiKV 支持批量 Split 和空的 Split 命令,使得 Split 可以批量进行 – TiKV 添加 RocksDB 双向链表支持,提升逆序扫性能 – Ansible 新增 iosnoop 和 funcslower 两个 perf 工具,方便诊断集群状态 – TiDB 优化慢日志输出内容,删除冗余字段 • 行为变更0 码力 | 2374 页 | 49.52 MB | 1 年前3
TiDB v5.4 中文手册AST 和具体的参数值生成执行计划。 当开启执行计划缓存后,每条 Prepare 语句的第一次 Execute 会检查当前查询是否可以使用执行计划缓存, 如果可以则将生成的执行计划放进一个由 LRU 链表构成的缓存中;在后续的 Execute 中,会先从缓存中获取 执行计划,并检查是否可用,如果获取和检查成功则跳过生成执行计划这一步,否则重新生成执行计划并放 入缓存中。 在当前版本中,当 Prepare TableDual 的计划将将不会被缓存,除非当前执行的 Prepare 语句不含参数, 则对应的 TableDual 计划可以被缓存。 LRU 链表是设计成 session 级别的缓存,因为 Prepare / Execute 不能跨 session 执行。LRU 链表的每个元素是一个 key-value 对,value 是执行计划,key 由如下几部分组成: • 执行 Execute 时所在数据库的名字; txn-batch 配置项,用于控制恢复速率 • 改进提升 – TiKV 支持批量 Split 和空的 Split 命令,使得 Split 可以批量进行 – TiKV 添加 RocksDB 双向链表支持,提升逆序扫性能 – Ansible 新增 iosnoop 和 funcslower 两个 perf 工具,方便诊断集群状态 – TiDB 优化慢日志输出内容,删除冗余字段 • 行为变更0 码力 | 2852 页 | 52.59 MB | 1 年前3
TiDB v6.1 中文手册AST 和具体的参数值生成执行计划。 当开启执行计划缓存后,每条 Prepare 语句的第一次 Execute 会检查当前查询是否可以使用执行计划缓存, 如果可以则将生成的执行计划放进一个由 LRU 链表构成的缓存中;在后续的 Execute 中,会先从缓存中获取 1005 执行计划,并检查是否可用,如果获取和检查成功则跳过生成执行计划这一步,否则重新生成执行计划并放 入缓存中。 在当前版本中,当 TableDual 的计划将将不会被缓存,除非当前执行的 Prepare 语句不含参数, 则对应的 TableDual 计划可以被缓存。 LRU 链表是设计成 session 级别的缓存,因为 Prepare / Execute 不能跨 session 执行。LRU 链表的每个元素是一个 key-value 对,value 是执行计划,key 由如下几部分组成: • 执行 Execute 时所在数据库的名字; txn-batch 配置项,用于控制恢复速率 • 改进提升 – TiKV 支持批量 Split 和空的 Split 命令,使得 Split 可以批量进行 – TiKV 添加 RocksDB 双向链表支持,提升逆序扫性能 – Ansible 新增 iosnoop 和 funcslower 两个 perf 工具,方便诊断集群状态 – TiDB 优化慢日志输出内容,删除冗余字段 • 行为变更0 码力 | 3572 页 | 84.36 MB | 1 年前3
TiDB v7.1 中文手册AST 和具体的参数值生成执行计划。 当开启执行计划缓存后,每条 Prepare 语句的第一次 Execute 会检查当前查询是否可以使用执行计划缓存, 如果可以则将生成的执行计划放进一个由 LRU 链表构成的缓存中;在后续的 Execute 中,会先从缓存中获取 执行计划,并检查是否可用,如果获取和检查成功则跳过生成执行计划这一步,否则重新生成执行计划并放 入缓存中。 对于某些非 PREPARE TableDual 的计划将将不会被缓存,除非当前执行的 Prepare 语句不含参数, 则对应的 TableDual 计划可以被缓存。 LRU 链表是设计成 session 级别的缓存,因为 Prepare/Execute 不能跨 session 执行。LRU 链表的每个元素是一个 key-value 对,value 是执行计划,key 由如下几部分组成: • 执行 Execute 时所在数据库的名字; txn-batch 配置项,用于控制恢复速率 • 改进提升 – TiKV 支持批量 Split 和空的 Split 命令,使得 Split 可以批量进行 – TiKV 添加 RocksDB 双向链表支持,提升逆序扫性能 – Ansible 新增 iosnoop 和 funcslower 两个 perf 工具,方便诊断集群状态 – TiDB 优化慢日志输出内容,删除冗余字段 • 行为变更0 码力 | 4369 页 | 98.92 MB | 1 年前3
TiDB v6.5 中文手册和具体的参数值生成执行计划。 1176 当开启执行计划缓存后,每条 Prepare 语句的第一次 Execute 会检查当前查询是否可以使用执行计划缓存, 如果可以则将生成的执行计划放进一个由 LRU 链表构成的缓存中;在后续的 Execute 中,会先从缓存中获取 执行计划,并检查是否可用,如果获取和检查成功则跳过生成执行计划这一步,否则重新生成执行计划并放 入缓存中。 在当前版本中,当 Prepare TableDual 的计划将将不会被缓存,除非当前执行的 Prepare 语句不含参数, 则对应的 TableDual 计划可以被缓存。 LRU 链表是设计成 session 级别的缓存,因为 Prepare / Execute 不能跨 session 执行。LRU 链表的每个元素是一个 key-value 对,value 是执行计划,key 由如下几部分组成: • 执行 Execute 时所在数据库的名字; txn-batch 配置项,用于控制恢复速率 • 改进提升 – TiKV 支持批量 Split 和空的 Split 命令,使得 Split 可以批量进行 – TiKV 添加 RocksDB 双向链表支持,提升逆序扫性能 – Ansible 新增 iosnoop 和 funcslower 两个 perf 工具,方便诊断集群状态 – TiDB 优化慢日志输出内容,删除冗余字段 • 行为变更0 码力 | 4049 页 | 94.00 MB | 1 年前3
TiDB v8.0 中文手册和具体的参数值生成执行计划。 1314 当开启执行计划缓存后,每条 Prepare 语句的第一次 Execute 会检查当前查询是否可以使用执行计划缓存, 如果可以则将生成的执行计划放进一个由 LRU 链表构成的缓存中;在后续的 Execute 中,会先从缓存中获取 执行计划,并检查是否可用,如果获取和检查成功则跳过生成执行计划这一步,否则重新生成执行计划并放 入缓存中。 对于某些非 PREPARE 65535个,则会报错 Prepared statement contains too many placeholders �→ 。 LRU 链表是设计成 session 级别的缓存,因为 Prepare/Execute 不能跨 session 执行。LRU 链表的每个元素是一个 key-value 对,value 是执行计划,key 由如下几部分组成: • 执行 Execute 时所在数据库的名字; txn-batch 配置项,用于控制恢复速率 • 改进提升 – TiKV 支持批量 Split 和空的 Split 命令,使得 Split 可以批量进行 – TiKV 添加 RocksDB 双向链表支持,提升逆序扫性能 – Ansible 新增 iosnoop 和 funcslower 两个 perf 工具,方便诊断集群状态 – TiDB 优化慢日志输出内容,删除冗余字段 • 行为变更0 码力 | 4805 页 | 101.28 MB | 1 年前3
TiDB v7.5 中文手册AST 和具体的参数值生成执行计划。 当开启执行计划缓存后,每条 Prepare 语句的第一次 Execute 会检查当前查询是否可以使用执行计划缓存, 如果可以则将生成的执行计划放进一个由 LRU 链表构成的缓存中;在后续的 Execute 中,会先从缓存中获取 执行计划,并检查是否可用,如果获取和检查成功则跳过生成执行计划这一步,否则重新生成执行计划并放 入缓存中。 对于某些非 PREPARE 65535个,则会报错 Prepared statement contains too many placeholders �→ 。 LRU 链表是设计成 session 级别的缓存,因为 Prepare/Execute 不能跨 session 执行。LRU 链表的每个元素是一个 key-value 对,value 是执行计划,key 由如下几部分组成: • 执行 Execute 时所在数据库的名字; txn-batch 配置项,用于控制恢复速率 • 改进提升 – TiKV 支持批量 Split 和空的 Split 命令,使得 Split 可以批量进行 – TiKV 添加 RocksDB 双向链表支持,提升逆序扫性能 – Ansible 新增 iosnoop 和 funcslower 两个 perf 工具,方便诊断集群状态 – TiDB 优化慢日志输出内容,删除冗余字段 • 行为变更0 码力 | 4590 页 | 100.91 MB | 1 年前3
TiDB v7.6 中文手册AST 和具体的参数值生成执行计划。 当开启执行计划缓存后,每条 Prepare 语句的第一次 Execute 会检查当前查询是否可以使用执行计划缓存, 如果可以则将生成的执行计划放进一个由 LRU 链表构成的缓存中;在后续的 Execute 中,会先从缓存中获取 执行计划,并检查是否可用,如果获取和检查成功则跳过生成执行计划这一步,否则重新生成执行计划并放 入缓存中。 对于某些非 PREPARE 65535个,则会报错 Prepared statement contains too many placeholders �→ 。 LRU 链表是设计成 session 级别的缓存,因为 Prepare/Execute 不能跨 session 执行。LRU 链表的每个元素是一个 key-value 对,value 是执行计划,key 由如下几部分组成: • 执行 Execute 时所在数据库的名字; txn-batch 配置项,用于控制恢复速率 • 改进提升 – TiKV 支持批量 Split 和空的 Split 命令,使得 Split 可以批量进行 – TiKV 添加 RocksDB 双向链表支持,提升逆序扫性能 – Ansible 新增 iosnoop 和 funcslower 两个 perf 工具,方便诊断集群状态 – TiDB 优化慢日志输出内容,删除冗余字段 • 行为变更0 码力 | 4666 页 | 101.24 MB | 1 年前3
共 14 条
- 1
- 2













