在 TiDB 中,常用的数据字典主要来自 information_schema 和 mysql 两个系统库,用来查看表结构、索引、统计信息、集群状态等。如果你平时做 DBA 或排查 SQL / 执行计划问题,下面这些是最常用的一批。
一、表结构相关(最常用)
1 查看表列表
SELECT *
FROM information_schema.tables
WHERE table_schema='db_name';
常用字段:
table_nametable_rowsdata_lengthindex_lengthcreate_time
说明:类似于 Oracle Database 的 dba_tables
2 查看列信息
SELECT *
FROM information_schema.columns
WHERE table_schema='db_name'
AND table_name='table_name';
常用字段:
| 字段 | 说明 |
|---|---|
| column_name | 列名 |
| data_type | 数据类型 |
| is_nullable | 是否可为空 |
| column_default | 默认值 |
| column_key | 是否索引 |
类似 Oracle:
dba_tab_columns
二、索引信息
3 查看表索引
SELECT *
FROM information_schema.statistics
WHERE table_schema='db_name'
AND table_name='table_name';
关键字段:
| 字段 | 说明 |
|---|---|
| index_name | 索引名 |
| column_name | 索引列 |
| seq_in_index | 列顺序 |
| non_unique | 是否唯一 |
类似 Oracle:
dba_indexes
dba_ind_columns
三、统计信息(优化SQL非常重要)
TiDB 优化器依赖统计信息。
4 查看统计信息
SELECT *
FROM mysql.stats_meta
WHERE db_name='db_name'
AND table_name='table_name';
字段:
| 字段 | 说明 |
|---|---|
| modify_count | 修改行数 |
| count | 总行数 |
5 查看列统计
SELECT *
FROM mysql.stats_histograms
WHERE db_name='db_name'
AND table_name='table_name';
包含:
- NDV(去重值)
- histogram
- bucket
四、Region分布(TiDB特有)
TiDB 的表数据会被切分为 Region。
6 查看表region分布
SELECT *
FROM information_schema.tikv_region_status
WHERE db_name='db_name'
AND table_name='table_name';
可以看到:
- region id
- leader store
- region size
用于:
- 数据热点分析
- region不均衡分析
五、集群节点信息
7 查看集群节点
SELECT *
FROM information_schema.cluster_info;
示例输出:
| type | instance | status |
|---|---|---|
| tidb | 192.168.1.10:4000 | Up |
| tikv | 192.168.1.11:20160 | Up |
| pd | 192.168.1.12:2379 | Up |
六、慢SQL
8 查看慢SQL
SELECT *
FROM information_schema.slow_query
ORDER BY time DESC
LIMIT 10;
七、锁等待
9 查看锁等待
SELECT *
FROM information_schema.data_lock_waits;
八、当前SQL
10 查看当前SQL
SELECT *
FROM information_schema.cluster_processlist;
类似 MySQL:
show processlist
但 cluster_processlist 是全局的
九、DDL任务
SELECT *
FROM information_schema.tidb_ddl_jobs;
可以查看:
- 正在执行的DDL
- 历史DDL
十、热点表
SELECT *
FROM information_schema.tidb_hot_regions;
用于:
- 排查 热点region
- 写入不均衡
DBA最常用10个字典总结
| 类别 | 表 |
|---|---|
| 表信息 | information_schema.tables |
| 列信息 | information_schema.columns |
| 索引信息 | information_schema.statistics |
| 统计信息 | mysql.stats_meta |
| 列统计 | mysql.stats_histograms |
| region信息 | information_schema.tikv_region_status |
| 集群节点 | information_schema.cluster_info |
| 慢SQL | information_schema.slow_query |
| 锁等待 | information_schema.data_lock_waits |
| 当前SQL | information_schema.cluster_processlist |
DBA排查问题最常用的5个
information_schema.cluster_processlist
information_schema.slow_query
information_schema.data_lock_waits
information_schema.tikv_region_status
mysql.stats_meta