· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 51 2.3.8
统计信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · oad-concurrency �→ -从-v540-版本开始引入">
统计信息加载效率提升 10 倍
对于拥有大量表和分区的集群,比如 SaaS 或 PaaS 服务,统计信息加载效率的提升能够解决 TiDB �→ 实例启动缓慢的问题,同时也能提升统计信息动态加载的成功率, �→ 从而减少由于统计信息加载失败造成的性能回退,提升集群的稳定性。 | 统计信息加载效率提升 10 倍 #52831 @hawkingrei SaaS 或 PaaS 类业务应用中可能存在大量的数据表,这些表不但会拖慢初始统计信息的加载速度,也会 增加高负载情况下同步负载的失败率。TiDB 的启动时间以及执行计划的准确性都会受到影响。在 v8.2.0 中,TiDB 从并发模型、内存分配方式等多个角度优化了统计信息的加载过程,降低延迟,提升吞吐,避 0 码力 |
4987 页 |
102.91 MB
| 9 月前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 37 2.3.8 统计信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · TopN/Limit 估算的准确度。例如,对于包含 order by col limit x 的大表分页查询,TiDB 可以更容易地选对索引,降低查询响应时间。 – 提升对越界估算的准确度。例如,在当天统计信息尚未更新的情况下,对于包含 where date=Now() 的查询,TiDB 也能准确地选中对应索引。 – 引入变量 tidb_opt_limit_push_down_threshold 控制优化器对 分情况下因为估算误差导致 Limit/TopN 不能下推的问题。 用户文档,#26085 • 提升优化器的索引过滤规则 (Index Selection) 新增加了一些索引选择的裁剪规则,在通过统计信息进行对比之前,通过规则进一步对可能的选择的 索引范围进行缩小。从而减小各种情况下选到不优索引的概率。 用户文档 2.2.2.2 事务 • 锁视图 (Lock View) 成为 GA 特性 0 码力 |
2259 页 |
48.16 MB
| 1 年前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 37 2.3.8 统计信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · MySQL 8 中的公共表表达式 (Common Table Expression),提高了 SQL 语句的可读性与执行效率。 • 支持对数据表列类型的在线变更,提高了业务开发的灵活性。 • 引入一种新的统计信息类型,默认作为实验特性启用,提升查询稳定性。 • 支持 MySQL 8 中的动态权限 (Dynamic Privileges) 配置,实现对某些操作更细粒度的控制。 • 支持通过 Stale �→ depth 新增 用于控制公共表 表达式最大递归 深度。 init_connect 新增 用于控制初始连 接。 tidb_analyze_ �→ version 新增 用于控制所收集 到的统计信息。 默认值为 2,默 认作为实验特性 启用。 tidb_enable_ �→ enhanced_ �→ security 新增 表示所连接的 TiDB 服务器是否 启用了安全增强 模式(SEM),在 0 码力 |
2189 页 |
47.96 MB
| 1 年前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 49 1 2.3.8 统计信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 调度。 40 2.2.2.3 配置文件参数 配置文件 配置项 修改类 型 描述 TiDB concurrently-init- �→ stats 新增 用于控制 TiDB 启动时是否并发初始化统计 信息。默认值为 false。 TiDB Lightning conflict.max-record- �→ rows 修改 从 v8.1.0 开始,TiDB Lightning 会自动将 conflict @qw4990 – 修复自动统计信息收集在 OOM 后卡住的问题 #51993 @hi-rustin – 修复使用 BR 恢复一张表后,即使该表没有统计信息,统计信息健康度仍然显示为 100% 的问题 #29769 @winoros – 修复 TiDB 在升级过程中会为系统表创建统计信息的问题 #52040 @hi-rustin – 修复 TiDB 在统计信息初始化完成前就开始自动收集的问题 0 码力 |
4807 页 |
101.31 MB
| 1 年前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 64 2.3.8 统计信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 从 TiDB v8.0.0 版本起,BR 快照恢复提速功能正式发布并默认启用。通过采用粗粒度打散 Region 算法、批 量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等改进措施,快照 恢复的速度有大幅提升。在实际案例中,单个 TiKV 节点的数据恢复速度稳定在 1.2 GiB/s,并且能够在 1 小时内完成对 100 TiB 数据的恢复。 这意味着即使在高负载环境下,BR ON 时,代表启用。该变量将在功能正式发布后废弃。 更多信息,请参考用户文档。 • 自动统计信息收集引入优先级队列 #50132 @hi-rustin 维持优化器统计信息的时效性是稳定数据库性能的关键,绝大多数用户依赖 TiDB 提供的自动统计信息 收集来保持统计信息的更新。自动统计信息收集轮询所有对象的统计信息状态,并把健康度不足的对 象加入队列,逐个收集并更新。在之前的版本中,这些对象的收集顺序是随机的,可能导致更需要更 0 码力 |
4805 页 |
101.28 MB
| 1 年前 3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 47 2.3.8 统计信息 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 版本中,你可以获得以下关键特性: • 支持 GBK 字符集 • 支持索引合并 (Index Merge) 数据访问方法,能够合并多个列上索引的条件过滤结果 • 支持通过 session 变量实现有界限过期数据读取 • 支持统计信息采集配置持久化 • 支持使用 Raft Engine 作为 TiKV 的日志存储引擎(实验特性) 28 • 优化备份对集群的影响 • 支持 Azure Blob Storage 作为备份目标存储 这个变量用于控 制是否开启统计 信息的同步加载 模式(默认为 0 代表不开启,即 为异步加载模 式),以及开启 的情况下,SQL 执行同步加载完 整统计信息等待 多久后会超时。 tidb_stats_ �→ load_ �→ pseudo_ �→ timeout 新增 用于控制统计信 息同步加载超时 后,SQL 是执行 失败 (OFF) 还是 退回使用 pseudo 的统计信息 (ON), 默认值为 0 码力 |
2852 页 |
52.59 MB
| 1 年前 3
|