【TiDB 4.0 PCTA学习笔记】3.7TiDB 监控与调优

课程名称:301+监控与调优

学习时长:120

课程收获:

  • 运维中的关键监控
  • TiDB 的 SQL 的生命周期和关键监控指标
  • 查询优化器检查检查
  • TIDB的索引
  • TiDB 的分表
  • 如何处理数据热点问题

课程内容:

运维中的关键监控

  1. 系统, grafana overview

2.TIDB

3.TIKV

  • 延迟
  • cpu
    -错误

    GRPC延迟越低越好,
    image
    raft propose 调用 raft IO ,所以延迟根因也是向下
    p999需要关注,检查是否有毛刺

4.PD

5.Dashboard

TiDB 的 SQL 的生命周期和关键监控指标

TIDB


image
parse 一般batch insert 时比较慢
image
image
image
image

TIKV


image
image
写阶段会会使用
image
与处理的数据量正相关
image
image

查询优化器检查检查

cause:

获取信息途径:

集群查询

示例:



TIDB的索引

索引类型

  • 唯一索引和主键索引
    • 唯一索引,多列唯一,可以在多个可空列含有多个空值
    • 主键索引, 唯一非空
      mysql innodb 主键索引就是聚簇索引,聚簇索引不需要回表操作,但是如果存在热点可能导致性能下降
      image
  • 多列索引,最左前缀匹配原则
  • 表达式索引,like ’%%’ 支持通配符表达式索引
  • 前缀索引,建立在CHAR VARCHAR BINARY VARBINARY 指定为BOLB TEXT

索引管理

系统表

infomation_schema.tidb-_indexes
show index from table_name

hint:

select * from table_name use index(index_name)
select * from table_name force use index(index_name)
ignore:
select * from table_name ignore index(index_name)
select * from table_name use index()

TiDB 的分表

分区表:

每个分区是独立的物理表

分区裁剪:
优化器根据分区指定执行分区的过程。



函数作为分区表达式只能是单调函数

hash分析必须表达式是具体的值才能使用分区裁剪


V4.0的分区裁剪发生在逻辑优化阶段,运行阶段导出结果的表达式不能进行分区裁剪。

如何处理数据热点问题

image
热点问题,大部分是顺序写导致的,自增主键导致的顺序写.x
row_id;
写热点现象;


热点小表;
image
负载单位是region所有一个包含多个region的table不能避免热点

处理手段

学习过程中遇到的问题或延伸思考:

  • 问题 1:
  • 问题 2:
  • 延伸思考 1:
  • 延伸思考 2:

学习过程中参考的其他资料