042、TiDB特性_系统表的使用

系统表存储位置

  • MySQL 存储TiDB 系统表
    • mysql.user 等
  • information_schmea提供了一种查看系统元数据的方法
    • 与mysql兼容的表:tables、processlist、columns等
    • 自定义的表: cluster_config、cluster_hardware、tiflash_replica等等
  • metrics_schema: 基于Prometheus 中TiDB监控指标的一组视图
  • PERFORMANCE_SCHEMA 目前与MySQL兼容保留了部分视图

常用mysql库系统表

  • mysql.user 用户账户,全局权限,以及其他一些非权限的列
  • mysql.db 数据库级别的权限
  • mysql.tables_priv 表级的权限
  • mysql.columns_priv 列级的权限(目前不支持)
  • mysql.global_variables 查看TiDB全局变量,支持对variable_value的修改
  • mysql.tidb 已KV形式存储集群状态的表,修改variable_value可以调整相关系统行为

information_schema相关表

  • information_schema.cluster_info

    • 提供集群当前的拓扑信息,各个节点的版本信息、版本对应的Git hash、各节点的启动时间、各实例的运行时间
    • 当集群进行升级或者打了patch版本,确定各个组件版本是否打好,可以查询此表
    • version:对应节点的语义版本号
    • start_time: 对应节点的启动时间
    • uptime: 对应节点已运行的时间
  • information_schema.cluster_config

    • 用于获取集群当前所有组件实例的配置
    • Type: 节点的类型,取值为tidb pd tikv
    • instance: 节点的服务地址
    • key: 配置项名
    • value: 配置项值
  • information_schema.ddl_jobs

    • ddl_jobs 表为admin show ddl jobs 命令提供了一个information_schema接口
    • 方便通过SQL查询和过滤相关表近期DDL变更情况

系统慢日志查询

  • 搜索某个用户的Top N慢查询
select query_time,query,user from information_schema.slow_query where 
is_internal = false -- 排除TiDB内部的慢查询
and user = "user1"  --查找的用户名
order by query_time desc
limit 2;
  • 根据SQL指纹搜索同类慢查询:
    1. 先根据最近慢语句list查找特定慢语句:
select query_time,query,digest from information_schema.slow_query where is_internal= false and time between '2022-01-01' and '2022-01-02' order by query_time desc;

在这里插入图片描述

2.	 再根据SQL指纹搜索同类慢查询:
select query,query_time from information_schema.slow_query where digest="xxxxx"

在这里插入图片描述

  • 统计信息为pseudo的慢查询SQL:
select query,query_time,stats from information_schema.slow_query
where is_internal = false 
and stats like '%pseudo%'; # 如果慢查询日志中的统计信息被标记为 pseudo,往往说明 TiDB 表的统计信息更新不及时,需要运行 analyze table手动收集统计信息。

在这里插入图片描述

读写热点数据查询

  • 统计当前读写热点表
select db_name,table_name,index_name, type, sum(flow_bytes), count(1), group_concat(h.region_id), count(distinct p.store_id), group_concat(p.store_id) from tidb_hot_regions h join tikv_region_peers p on h.region_id=p.region_id and p.is_leader=1  group by db_name,table_name,index_name,type;
type --读写热点分类
sum(flow_bytes) ---每分钟流量
  • 统计当前读写热点STORE
select p.store_id,sum(flow_bytes),count(1) from tidb_hot_regions h join tikv_region_peers p on h.region_id = p.region_id and p.is_leader=1 group by p.store_id order by 2 desc;

在这里插入图片描述

SQL阻塞查询

  • data_lock_waits

    • 集群中所有TiKV节点上当前正在发生悲观锁等相关锁
    • 仅拥有process权限的用户可以查询
    • 从所有TiKV节点实时获取
    • 如果集群规模很大,负载很高,查询该表有造成性能抖动的潜在风险
  • deadlocks

    • 查看最近发生的若干次死锁错误的信息
    • 默认容纳最近10次死锁错误的信息
  • tidb_trx

    • 返回了所有正在执行的事务信息
    • 仅拥有process权限的用户可以查询
  • 死锁排查问题
    在这里插入图片描述
    查询deadlocks 表,来确定死锁情况

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值