【TiDB 4.0 PCTA学习笔记】2.5高阶应用-2

课程名称:201+ 【TiDB 4.0 PCTA学习笔记】2.5高阶应用-1

学习时长:100

课程收获:

  • TiDB Dasboard 的高级功能
  • TiDB 的 SQL 性能优化指南
  • TIDB 的 TiKV 性能优化指南

课程内容:

TiDB Dasboard 的高级功能

流量可视化

  1. 正常,期待
  2. 周期峰值
  3. 业务热点
  4. 瞬时流量热点
  5. 数据倾斜,集中读写

SQL分析


集群诊断

类比ORACLE AWR

TiDB 的 SQL 性能优化指南

  • 优化器
  • 执行器
  • 控制执行计划

优化器


计划

explan:估算,执行前的分析,非准确结果


explain analyze 针对真正执行计划的分析,

逻辑优化

首选需要明确并不是所有的优化都是对提升性能是有益的,有些优化需要根据数据量,使用的算法特点进行分析
可以通过下列参数进行控制。但是前提是明确各个算法的实现逻辑才能对应到正确的参数。
优化的过程还需要考虑资源的使用和限制,需要权衡得到综合效率的提升。


min/max 消除,绝对有益


subquery
子查询展开,非绝对有益





聚合下推





物理优化


带结果的搜索框架

索引选取


执行框架






单线程,节省内存

单线程




推荐为核心数目


控制执行计划

控制执行计划的两种手段;

  • hint 对SQL的改写,提示使用的索引,使用的算法等设置。需要针对sql和存储结构进行分析,属于事前行为
  • spm 对sql计划的执行绑定,属于数据库后端行为,也可以理解为时候行为,需要针对sql和存储结构进行分析。同时也可以对sql类型,数量执行过程进行分析,根据分析结果进行binding。
hint



sql plan manager

不修改SQL文本前提下控制执行计划


binding

show

3. TIDB 的 TiKV 性能优化指南

性能优化思路:

  • 针对tiKV的各种动作分析监控指标,重要的有CPU占用和IO吞吐
  • 针对各个动作的实现机制,调整某个动作阶段执行器的的并发
  • 核心还需要关注IO性能,过低的性能会导致性能瓶颈,毕竟TiKV是存储层


只有一个副本对外提供服务,使用rocksdb提供存储

每个副本有各自的WAL ,WAL成功即成功

正常性能期待:
p99<100ms wp99<500ms

commit → 2PC
确定tikv还是tidb是瓶颈,查询计划的qps和tikv的比例

CASE:

  • apply 延迟i
    1. 线程数量
    2. 整机CPU利用率过高
    3. 写入限流 write stall
    4. 盘写入达到上限,阻塞
  • store
    1. 线程数量
    2. 心跳过高
    3. 磁盘延迟
    4. write stall (rocksDB 日志)过多写入请求写满缓存,过多L0文件,合并过多

读请求

  • 简单查询 storage pool
  • 复杂查询 coprocess pool
    version >4.0 uni pool


tombstore 标记删除数据,查询过多已经删除数据会触发tombstore限流

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。