系统表存储位置
- 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指纹搜索同类慢查询: 
  
- 先根据最近慢语句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 表,来确定死锁情况 


















