课程名称:201+ 【TiDB 4.0 PCTA学习笔记】2.5高阶应用-1
学习时长:100
课程收获:
- TiDB Dasboard 的高级功能
- TiDB 的 SQL 性能优化指南
- TIDB 的 TiKV 性能优化指南
课程内容:
TiDB Dasboard 的高级功能
流量可视化
- 正常,期待
- 周期峰值
- 业务热点
- 瞬时流量热点
- 数据倾斜,集中读写
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的比例
- grpc request ,request delay
propose 事务层下层延迟
wait时间核查
CASE:
- apply 延迟i
- 线程数量
- 整机CPU利用率过高
- 写入限流 write stall
- 盘写入达到上限,阻塞
- store
- 线程数量
- 心跳过高
- 磁盘延迟
- write stall (rocksDB 日志)过多写入请求写满缓存,过多L0文件,合并过多
读请求
- 简单查询 storage pool
- 复杂查询 coprocess pool
version >4.0 uni pool
tombstore 标记删除数据,查询过多已经删除数据会触发tombstore限流