挖到宝了!让小龙虾啃完 Doris 源码,我得到了比官方文档还全系统表字典
学习新数据库,一份详尽的系统库数据字典,往往是最可靠的导航地图。过去学习传统关系型时,DBA 通常需要在数百页的官方文档中反复查找、比对,才能逐渐拼凑出系统表、视图和内部结构的全貌。
以往这种工作DBA 往往需要花费数周时间逐个模块阅读源码、记录和校对。Ai 时代,阅读、编写代码的门槛骤降,数据库的学习方式也发生了改变。只需要将数据库的源码投喂给大模型,AI Agent 几分钟内完成这项枯燥而耗时的工作。指令很如下:
请分析 Apache Doris 本地xxx目录下的源代码,找到代码中三个系统库mysql、information_schema、__internal_schema 下所有系统表每个字段的具体含义。要求:1. 列出该表所有字段名称;2. 逐一说明每个字段的定义、数据类型、代表的业务含义;3. 标注字段的枚举值有哪些,每个枚举值的含义;4. 尽量引用代码中的注释或定义原文,保证准确性。
小龙虾在几分钟完成了整个过程,并生成了一份异常完整的系统字典。

图片来自 Apache Doris Dcument
令人意外,这份 Ai Agent 基于源码挖掘的文档,居然比官方文档还要全面。比如上图官方文档中,__internal_schema 系统库显示只有三个表,实际上还存在histogram_statistics 表。不知道是我理解不到位,还是 Apache Doris 社区的官方文档有遗漏。
mysql> use __internal_schemaReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql>mysql> show tables;+-----------------------------+| Tables_in___internal_schema |+-----------------------------+| audit_log || column_statistics || histogram_statistics || table_statistics |+-----------------------------+4 rows in set (0.01 sec)mysql> desc histogram_statistics;+-------------+----------------+------+-------+---------+---------+| Field | Type | Null | Key | Default | Extra |+-------------+----------------+------+-------+---------+---------+| id | varchar(4096) | No | true | NULL | || catalog_id | varchar(64) | No | true | NULL | || db_id | varchar(64) | No | true | NULL | || tbl_id | varchar(64) | No | true | NULL | || idx_id | varchar(64) | No | true | NULL | || col_id | varchar(64) | No | true | NULL | || sample_rate | double | No | false | NULL | REPLACE || buckets | varchar(65533) | No | false | NULL | REPLACE || update_time | datetime | No | false | NULL | REPLACE |+-------------+----------------+------+-------+---------+---------+9 rows in set (0.00 sec)mysql>
以下是小龙虾整理结果,有需要的可以下载。
Doris 系统库系统数据字典整理
分析版本: Apache Doris 4.0.4-rc01分析时间: 2026-03-21源码位置:
fe/fe-core/src/main/java/org/apache/doris/catalog/
本文档整理了 Doris 数据库三个系统库的数据字典信息:
-
information_schema – MySQL 兼容的系统元数据库
-
mysql – MySQL 兼容的用户权限库
-
__internal_schema – Doris 内部统计信息库
一、information_schema 库
information_schema 是 Doris 为兼容 MySQL 而实现的系统库,用于存储数据库元数据信息。该库中的表定义在 SchemaTable.java 中。
1.1 tables 表
存储数据库中所有表的信息。
重要字段说明:
-
TABLE_SCHEMA/TABLE_NAME: 标识表所属的数据库和表名,是最常用的查询条件
-
TABLE_TYPE: 表类型,取值包括
BASE TABLE(普通表)、VIEW(视图)、SYSTEM VIEW(系统视图) -
ENGINE: 存储引擎,Doris 中通常为
Doris -
TABLE_ROWS: 表的估计行数,用于查询优化器评估
-
DATA_LENGTH: 数据占用空间大小(字节)
-
TABLE_COMMENT: 表注释信息
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| TABLE_CATALOG | VARCHAR(512) | 表所属目录,通常为 def |
| TABLE_SCHEMA | VARCHAR(64) | 表所属数据库名,查询时常用过滤条件 |
| TABLE_NAME | VARCHAR(64) | 表名 |
| TABLE_TYPE | VARCHAR(64) | 表类型:BASE TABLE/VIEW/SYSTEM VIEW |
| ENGINE | VARCHAR(64) | 存储引擎 |
| VERSION | BIGINT | 版本号 |
| ROW_FORMAT | VARCHAR(10) | 行格式 |
| TABLE_ROWS | BIGINT | 表的估计行数 |
| AVG_ROW_LENGTH | BIGINT | 平均行长度(字节) |
| DATA_LENGTH | BIGINT | 数据总长度(字节) |
| MAX_DATA_LENGTH | BIGINT | 最大数据长度 |
| INDEX_LENGTH | BIGINT | 索引长度 |
| DATA_FREE | BIGINT | 空闲空间 |
| AUTO_INCREMENT | BIGINT | 自增当前值 |
| CREATE_TIME | DATETIME | 创建时间 |
| UPDATE_TIME | DATETIME | 更新时间 |
| CHECK_TIME | DATETIME | 检查时间 |
| TABLE_COLLATION | VARCHAR(32) | 表字符集排序规则 |
| CHECKSUM | BIGINT | 校验和 |
| CREATE_OPTIONS | VARCHAR(255) | 创建选项 |
| TABLE_COMMENT | VARCHAR(2048) | 表注释 |
1.2 columns 表
存储所有表的列信息。
重要字段说明:
-
TABLE_SCHEMA/TABLE_NAME/COLUMN_NAME: 定位列的三要素
-
ORDINAL_POSITION: 列在表中的物理顺序,从 1 开始
-
IS_NULLABLE: 是否可为空,
YES或NO -
DATA_TYPE: 数据类型,如
int,varchar,datetime等 -
COLUMN_KEY: 列键类型,
PRI(主键)、UNI(唯一键)、MUL(普通索引) -
EXTRA: 额外属性,如
auto_increment,default_generated等 -
COLUMN_COMMENT: 列注释
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| TABLE_CATALOG | VARCHAR(512) | 目录名 |
| TABLE_SCHEMA | VARCHAR(64) | 数据库名 |
| TABLE_NAME | VARCHAR(64) | 表名 |
| COLUMN_NAME | VARCHAR(64) | 列名 |
| ORDINAL_POSITION | BIGINT | 列在表中的位置(从1开始) |
| COLUMN_DEFAULT | VARCHAR(1024) | 默认值 |
| IS_NULLABLE | VARCHAR(3) | 是否可为空:YES/NO |
| DATA_TYPE | VARCHAR(64) | 数据类型 |
| CHARACTER_MAXIMUM_LENGTH | BIGINT | 字符最大长度 |
| CHARACTER_OCTET_LENGTH | BIGINT | 字符字节长度 |
| NUMERIC_PRECISION | BIGINT | 数值精度 |
| NUMERIC_SCALE | BIGINT | 数值小数位 |
| DATETIME_PRECISION | BIGINT | 日期时间精度 |
| CHARACTER_SET_NAME | VARCHAR(32) | 字符集名 |
| COLLATION_NAME | VARCHAR(32) | 排序规则名 |
| COLUMN_TYPE | VARCHAR(32) | 列类型完整定义 |
| COLUMN_KEY | VARCHAR(3) | 键类型:PRI/UNI/MUL |
| EXTRA | VARCHAR(27) | 额外信息:auto_increment 等 |
| PRIVILEGES | VARCHAR(80) | 权限信息 |
| COLUMN_COMMENT | VARCHAR(1024) | 列注释 |
| COLUMN_SIZE | BIGINT | 列大小 |
| DECIMAL_DIGITS | BIGINT | 小数位数 |
| GENERATION_EXPRESSION | VARCHAR(64) | 生成表达式 |
| SRS_ID | BIGINT | 空间参考系统ID |
1.3 schemata 表
存储数据库(schema)信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| CATALOG_NAME | VARCHAR(512) | 目录名 |
| SCHEMA_NAME | VARCHAR(32) | 数据库名 |
| DEFAULT_CHARACTER_SET_NAME | VARCHAR(32) | 默认字符集 |
| DEFAULT_COLLATION_NAME | VARCHAR(32) | 默认排序规则 |
| SQL_PATH | VARCHAR(512) | SQL路径 |
| DEFAULT_ENCRYPTION | VARCHAR(3) | 默认加密设置 |
1.4 views 表
存储视图信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| TABLE_CATALOG | VARCHAR(512) | 目录名 |
| TABLE_SCHEMA | VARCHAR(64) | 数据库名 |
| TABLE_NAME | VARCHAR(64) | 视图名 |
| VIEW_DEFINITION | VARCHAR(8096) | 视图定义SQL |
| CHECK_OPTION | VARCHAR(8) | 检查选项 |
| IS_UPDATABLE | VARCHAR(3) | 是否可更新 |
| DEFINER | VARCHAR(77) | 定义者 |
| SECURITY_TYPE | VARCHAR(7) | 安全类型 |
| CHARACTER_SET_CLIENT | VARCHAR(32) | 客户端字符集 |
| COLLATION_CONNECTION | VARCHAR(32) | 连接排序规则 |
1.5 statistics 表
存储表的索引统计信息,对应 MySQL 的 SHOW INDEX 信息。
重要字段说明:
-
NON_UNIQUE:
0表示唯一索引,1表示非唯一索引 -
INDEX_NAME: 索引名称,主键索引名为
PRIMARY -
SEQ_IN_INDEX: 列在复合索引中的顺序
-
CARDINALITY: 索引基数,表示该索引列不同值的数量估计,用于优化器评估
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| TABLE_CATALOG | VARCHAR(512) | 目录名 |
| TABLE_SCHEMA | VARCHAR(64) | 数据库名 |
| TABLE_NAME | VARCHAR(64) | 表名 |
| NON_UNIQUE | BIGINT | 是否非唯一:0=唯一,1=非唯一 |
| INDEX_SCHEMA | VARCHAR(64) | 索引所在数据库 |
| INDEX_NAME | VARCHAR(64) | 索引名 |
| SEQ_IN_INDEX | BIGINT | 列在索引中的顺序 |
| COLUMN_NAME | VARCHAR(64) | 列名 |
| COLLATION | VARCHAR(1) | 排序方式:A=升序,D=降序 |
| CARDINALITY | BIGINT | 基数(不同值数量估计) |
| SUB_PART | BIGINT | 前缀索引长度 |
| PACKED | VARCHAR(10) | 打包方式 |
| NULLABLE | VARCHAR(3) | 是否可为空 |
| INDEX_TYPE | VARCHAR(16) | 索引类型:BTREE, HASH等 |
| COMMENT | VARCHAR(16) | 索引注释 |
| INDEX_COMMENT | VARCHAR(1024) | 索引详细注释 |
1.6 table_constraints 表
存储表的约束信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| CONSTRAINT_CATALOG | VARCHAR(512) | 约束目录 |
| CONSTRAINT_SCHEMA | VARCHAR(64) | 约束数据库 |
| CONSTRAINT_NAME | VARCHAR(64) | 约束名 |
| TABLE_SCHEMA | VARCHAR(64) | 表数据库 |
| TABLE_NAME | VARCHAR(64) | 表名 |
| CONSTRAINT_TYPE | VARCHAR(64) | 约束类型:PRIMARY KEY/UNIQUE/FOREIGN KEY/CHECK |
1.7 key_column_usage 表
存储键列的使用信息,用于查看主键、外键等约束涉及的列。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| CONSTRAINT_CATALOG | VARCHAR(64) | 约束目录 |
| CONSTRAINT_SCHEMA | VARCHAR(64) | 约束数据库 |
| CONSTRAINT_NAME | VARCHAR(64) | 约束名 |
| TABLE_CATALOG | VARCHAR(64) | 表目录 |
| TABLE_SCHEMA | VARCHAR(64) | 表数据库 |
| TABLE_NAME | VARCHAR(64) | 表名 |
| COLUMN_NAME | VARCHAR(64) | 列名 |
| ORDINAL_POSITION | BIGINT | 位置 |
| POSITION_IN_UNIQUE_CONSTRAINT | BIGINT | 在唯一约束中的位置 |
| REFERENCED_TABLE_SCHEMA | VARCHAR(64) | 引用表数据库 |
| REFERENCED_TABLE_NAME | VARCHAR(64) | 引用表名 |
| REFERENCED_COLUMN_NAME | VARCHAR(64) | 引用列名 |
1.8 referential_constraints 表
存储外键约束信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| CONSTRAINT_CATALOG | VARCHAR(64) | 约束目录 |
| CONSTRAINT_SCHEMA | VARCHAR(64) | 约束数据库 |
| CONSTRAINT_NAME | VARCHAR(64) | 约束名 |
| UNIQUE_CONSTRAINT_CATALOG | VARCHAR(64) | 唯一约束目录 |
| UNIQUE_CONSTRAINT_SCHEMA | VARCHAR(64) | 唯一约束数据库 |
| UNIQUE_CONSTRAINT_NAME | VARCHAR(64) | 唯一约束名 |
| MATCH_OPTION | VARCHAR(64) | 匹配选项 |
| UPDATE_RULE | VARCHAR(64) | 更新规则:CASCADE/SET NULL/RESTRICT/NO ACTION |
| DELETE_RULE | VARCHAR(64) | 删除规则:CASCADE/SET NULL/RESTRICT/NO ACTION |
| TABLE_NAME | VARCHAR(64) | 表名 |
| REFERENCED_TABLE_NAME | VARCHAR(64) | 被引用表名 |
1.9 partitions 表
存储分区信息,Doris 特有的扩展字段提供了丰富的分区元数据。
重要字段说明:
-
PARTITION_METHOD: 分区方式,如
RANGE,LIST,HASH -
PARTITION_EXPRESSION: 分区表达式
-
STATE: 分区状态
-
VISIBLE_VERSION/COMMITTED_VERSION: 数据版本信息,用于 MVCC
-
STORAGE_POLICY: 存储策略,用于分层存储
-
STORAGE_MEDIUM: 存储介质,
SSD或HDD
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| PARTITION_ID | BIGINT | 分区ID |
| TABLE_CATALOG | VARCHAR(64) | 目录名 |
| TABLE_SCHEMA | VARCHAR(64) | 数据库名 |
| TABLE_NAME | VARCHAR(64) | 表名 |
| PARTITION_NAME | VARCHAR(64) | 分区名 |
| SUBPARTITION_NAME | VARCHAR(64) | 子分区名 |
| PARTITION_ORDINAL_POSITION | INT | 分区位置 |
| SUBPARTITION_ORDINAL_POSITION | INT | 子分区位置 |
| PARTITION_METHOD | VARCHAR(13) | 分区方法:RANGE/LIST/HASH |
| SUBPARTITION_METHOD | VARCHAR(13) | 子分区方法 |
| PARTITION_EXPRESSION | VARCHAR(2048) | 分区表达式 |
| SUBPARTITION_EXPRESSION | VARCHAR(2048) | 子分区表达式 |
| PARTITION_DESCRIPTION | STRING | 分区描述 |
| TABLE_ROWS | BIGINT | 分区行数 |
| AVG_ROW_LENGTH | BIGINT | 平均行长度 |
| DATA_LENGTH | BIGINT | 数据长度 |
| MAX_DATA_LENGTH | BIGINT | 最大数据长度 |
| INDEX_LENGTH | BIGINT | 索引长度 |
| DATA_FREE | BIGINT | 空闲空间 |
| CREATE_TIME | BIGINT | 创建时间 |
| UPDATE_TIME | DATETIME | 更新时间 |
| CHECK_TIME | DATETIME | 检查时间 |
| CHECKSUM | BIGINT | 校验和 |
| PARTITION_COMMENT | STRING | 分区注释 |
| NODEGROUP | VARCHAR(256) | 节点组 |
| TABLESPACE_NAME | VARCHAR(268) | 表空间名 |
| LOCAL_DATA_SIZE | STRING | 本地数据大小 |
| REMOTE_DATA_SIZE | STRING | 远程数据大小 |
| STATE | STRING | 分区状态 |
| REPLICA_ALLOCATION | STRING | 副本分配 |
| REPLICA_NUM | INT | 副本数 |
| STORAGE_POLICY | STRING | 存储策略 |
| STORAGE_MEDIUM | STRING | 存储介质:SSD/HDD |
| COOLDOWN_TIME_MS | STRING | 冷却时间(毫秒) |
| LAST_CONSISTENCY_CHECK_TIME | STRING | 最后一致性检查时间 |
| BUCKET_NUM | INT | 分桶数 |
| COMMITTED_VERSION | BIGINT | 已提交版本 |
| VISIBLE_VERSION | BIGINT | 可见版本 |
| PARTITION_KEY | STRING | 分区键 |
| RANGE | STRING | 分区范围 |
| DISTRIBUTION | STRING | 分布信息 |
1.10 session_variables / global_variables 表
存储会话级和全局级变量信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| VARIABLE_NAME | VARCHAR(64) | 变量名 |
| VARIABLE_VALUE | VARCHAR(1024) | 变量当前值 |
| DEFAULT_VALUE | VARCHAR(1024) | 变量默认值 |
| CHANGED | VARCHAR(4) | 是否已修改:YES/NO |
1.11 character_sets / collations 表
存储支持的字符集和排序规则信息。
character_sets:
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| CHARACTER_SET_NAME | VARCHAR(512) | 字符集名 |
| DEFAULT_COLLATE_NAME | VARCHAR(64) | 默认排序规则 |
| DESCRIPTION | VARCHAR(64) | 描述 |
| MAXLEN | BIGINT | 最大字节长度 |
collations:
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| COLLATION_NAME | VARCHAR(512) | 排序规则名 |
| CHARACTER_SET_NAME | VARCHAR(64) | 字符集名 |
| ID | BIGINT | 排序规则ID |
| IS_DEFAULT | VARCHAR(64) | 是否为默认 |
| IS_COMPILED | VARCHAR(64) | 是否已编译 |
| SORTLEN | BIGINT | 排序长度 |
1.12 engines 表
存储存储引擎信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| ENGINE | VARCHAR(64) | 引擎名 |
| SUPPORT | VARCHAR(8) | 支持级别:YES/NO/DEFAULT |
| COMMENT | VARCHAR(80) | 注释 |
| TRANSACTIONS | VARCHAR(3) | 是否支持事务 |
| XA | VARCHAR(3) | 是否支持XA事务 |
| SAVEPOINTS | VARCHAR(3) | 是否支持保存点 |
1.13 routines / parameters 表
存储存储过程和函数信息(当前为模拟表,用于 BI 工具兼容)。
1.14 table_privileges / schema_privileges / user_privileges / column_privileges 表
存储各级别权限信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| GRANTEE | VARCHAR(81/128) | 被授权者 |
| TABLE_CATALOG | VARCHAR(512) | 目录名 |
| TABLE_SCHEMA | VARCHAR(64) | 数据库名 |
| TABLE_NAME | VARCHAR(64) | 表名 |
| COLUMN_NAME | VARCHAR(64) | 列名(column_privileges) |
| PRIVILEGE_TYPE | VARCHAR(64) | 权限类型 |
| IS_GRANTABLE | VARCHAR(3) | 是否可授权:YES/NO |
1.15 triggers / events 表
存储触发器和事件信息(模拟表,用于 DataGrip 兼容)。
1.16 其他 Doris 特有系统表
rowsets 表
存储 BE 上的 rowset 信息,用于数据版本管理。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| BACKEND_ID | BIGINT | BE节点ID |
| ROWSET_ID | VARCHAR(64) | Rowset ID |
| TABLET_ID | BIGINT | Tablet ID |
| ROWSET_NUM_ROWS | BIGINT | Rowset行数 |
| TXN_ID | BIGINT | 事务ID |
| NUM_SEGMENTS | BIGINT | Segment数量 |
| START_VERSION | BIGINT | 起始版本 |
| END_VERSION | BIGINT | 结束版本 |
| INDEX_DISK_SIZE | BIGINT | 索引磁盘大小 |
| DATA_DISK_SIZE | BIGINT | 数据磁盘大小 |
| CREATION_TIME | DATETIME | 创建时间 |
| NEWEST_WRITE_TIMESTAMP | DATETIME | 最新写入时间 |
| SCHEMA_VERSION | INT | Schema版本 |
backend_active_tasks 表
存储 BE 上的活跃任务信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| BE_ID | BIGINT | BE节点ID |
| FE_HOST | VARCHAR(256) | FE主机 |
| WORKLOAD_GROUP_ID | BIGINT | 负载组ID |
| QUERY_ID | VARCHAR(256) | 查询ID |
| TASK_TIME_MS | BIGINT | 任务耗时(毫秒) |
| TASK_CPU_TIME_MS | BIGINT | CPU耗时(毫秒) |
| SCAN_ROWS | BIGINT | 扫描行数 |
| SCAN_BYTES | BIGINT | 扫描字节数 |
| BE_PEAK_MEMORY_BYTES | BIGINT | 峰值内存 |
| CURRENT_USED_MEMORY_BYTES | BIGINT | 当前使用内存 |
| SHUFFLE_SEND_BYTES | BIGINT | Shuffle发送字节数 |
| SHUFFLE_SEND_ROWS | BIGINT | Shuffle发送行数 |
| QUERY_TYPE | VARCHAR(256) | 查询类型 |
| SPILL_WRITE_BYTES_TO_LOCAL_STORAGE | BIGINT | Spill写入本地存储 |
| SPILL_READ_BYTES_FROM_LOCAL_STORAGE | BIGINT | Spill读取本地存储 |
active_queries 表
存储活跃查询信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| QUERY_ID | VARCHAR(256) | 查询ID |
| QUERY_START_TIME | VARCHAR(256) | 查询开始时间 |
| QUERY_TIME_MS | BIGINT | 查询耗时(毫秒) |
| WORKLOAD_GROUP_ID | BIGINT | 负载组ID |
| DATABASE | VARCHAR(256) | 数据库 |
| FRONTEND_INSTANCE | VARCHAR(256) | FE实例 |
| QUEUE_START_TIME | VARCHAR(256) | 队列开始时间 |
| QUEUE_END_TIME | VARCHAR(256) | 队列结束时间 |
| QUERY_STATUS | VARCHAR(256) | 查询状态 |
| USER | VARCHAR(256) | 执行用户 |
| SQL | STRING | SQL语句 |
workload_groups 表
存储负载组配置信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| ID | BIGINT | 负载组ID |
| NAME | VARCHAR(256) | 负载组名 |
| MIN_CPU_PERCENT | VARCHAR(256) | 最小CPU百分比 |
| MAX_CPU_PERCENT | VARCHAR(256) | 最大CPU百分比 |
| MIN_MEMORY_PERCENT | VARCHAR(256) | 最小内存百分比 |
| MAX_MEMORY_PERCENT | VARCHAR(256) | 最大内存百分比 |
| MAX_CONCURRENCY | BIGINT | 最大并发数 |
| MAX_QUEUE_SIZE | BIGINT | 最大队列大小 |
| QUEUE_TIMEOUT | BIGINT | 队列超时时间 |
| SCAN_THREAD_NUM | BIGINT | 扫描线程数 |
| MAX_REMOTE_SCAN_THREAD_NUM | BIGINT | 最大远程扫描线程数 |
| MIN_REMOTE_SCAN_THREAD_NUM | BIGINT | 最小远程扫描线程数 |
| MEMORY_LOW_WATERMARK | VARCHAR(256) | 内存低水位 |
| MEMORY_HIGH_WATERMARK | VARCHAR(256) | 内存高水位 |
| COMPUTE_GROUP | VARCHAR(256) | 计算组 |
| READ_BYTES_PER_SECOND | BIGINT | 每秒读取字节数 |
| REMOTE_READ_BYTES_PER_SECOND | BIGINT | 每秒远程读取字节数 |
processlist 表
存储连接进程信息,兼容 MySQL SHOW PROCESSLIST。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| CurrentConnected | VARCHAR(16) | 当前是否连接 |
| Id | LARGEINT | 连接ID |
| User | VARCHAR(32) | 用户名 |
| Host | VARCHAR(261) | 客户端主机 |
| LoginTime | DATETIMEV2 | 登录时间 |
| Catalog | VARCHAR(64) | Catalog |
| Db | VARCHAR(64) | 当前数据库 |
| Command | VARCHAR(16) | 当前命令 |
| Time | INT | 执行时间(秒) |
| State | VARCHAR(64) | 连接状态 |
| QueryId | VARCHAR(256) | 查询ID |
| TraceId | VARCHAR(256) | Trace ID |
| Info | VARCHAR(MAX) | 正在执行的SQL |
| FE | VARCHAR(64) | FE节点 |
| CloudCluster | VARCHAR(64) | 云集群 |
routine_load_jobs / load_jobs 表
存储 Routine Load 和导入任务信息。
routine_load_jobs:
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| JOB_ID | STRING | 任务ID |
| JOB_NAME | STRING | 任务名 |
| CREATE_TIME | STRING | 创建时间 |
| PAUSE_TIME | STRING | 暂停时间 |
| END_TIME | STRING | 结束时间 |
| DB_NAME | STRING | 数据库名 |
| TABLE_NAME | STRING | 表名 |
| STATE | STRING | 任务状态 |
| CURRENT_TASK_NUM | STRING | 当前任务数 |
| JOB_PROPERTIES | STRING | 任务属性 |
| DATA_SOURCE_PROPERTIES | STRING | 数据源属性 |
| CUSTOM_PROPERTIES | STRING | 自定义属性 |
| STATISTIC | STRING | 统计信息 |
| PROGRESS | STRING | 进度 |
| LAG | STRING | 延迟 |
| REASON_OF_STATE_CHANGED | STRING | 状态变更原因 |
| ERROR_LOG_URLS | STRING | 错误日志URL |
| USER_NAME | STRING | 用户名 |
| CURRENT_ABORT_TASK_NUM | INT | 当前中止任务数 |
| IS_ABNORMAL_PAUSE | BOOLEAN | 是否异常暂停 |
| COMPUTE_GROUP | STRING | 计算组 |
backend_tablets 表
存储 BE 上的 Tablet 信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| BE_ID | BIGINT | BE节点ID |
| TABLET_ID | BIGINT | Tablet ID |
| REPLICA_ID | BIGINT | 副本ID |
| PARTITION_ID | BIGINT | 分区ID |
| TABLET_PATH | STRING | Tablet路径 |
| TABLET_LOCAL_SIZE | BIGINT | 本地大小 |
| TABLET_REMOTE_SIZE | BIGINT | 远程大小 |
| VERSION_COUNT | BIGINT | 版本数 |
| SEGMENT_COUNT | BIGINT | Segment数 |
| NUM_COLUMNS | BIGINT | 列数 |
| ROW_SIZE | BIGINT | 行大小 |
| COMPACTION_SCORE | INT | Compaction分数 |
| COMPRESS_KIND | STRING | 压缩类型 |
| IS_USED | BOOLEAN | 是否在使用 |
| IS_ALTER_FAILED | BOOLEAN | 是否Alter失败 |
| CREATE_TIME | DATETIME | 创建时间 |
| UPDATE_TIME | DATETIME | 更新时间 |
| IS_OVERLAP | BOOLEAN | 是否有重叠 |
二、mysql 库
mysql 库是 Doris 为兼容 MySQL 而实现的系统库,主要用于存储用户权限相关信息。该库中的表定义在 MysqlDBTable.java 中。
源码注释说明:
/*** This class is used for MySQL compatibility.* The mysqldump requires this database to make some* command arguments like --all-databases work as expected.* Native mysql has many system tables like slow_log under mysql database,* but currently we do not create any tables under mysql database of doris.* We will add useful system tables in the future.*/
2.1 user 表
存储用户账户和全局权限信息。
重要字段说明:
-
Host/User: 用户标识,MySQL 权限系统的标准格式
-
各种 *_priv 字段: 全局权限标志,
Y表示有权限,N或空表示无权限 -
Select_priv: 全局 SELECT 权限 -
Create_priv: 全局 CREATE 权限 -
Drop_priv: 全局 DROP 权限 -
Admin_priv: 管理员权限 -
Grant_priv: 可授权权限
| 字段名 | 数据类型 | 业务含义 | 取值范围 |
|---|---|---|---|
| Host | CHAR(255) | 主机名/IP | % 表示任意主机 |
| User | CHAR(32) | 用户名 | – |
| Node_priv | CHAR(1) | 节点管理权限 | Y/N |
| Admin_priv | CHAR(1) | 管理员权限 | Y/N |
| Grant_priv | CHAR(1) | 可授权权限 | Y/N |
| Select_priv | CHAR(1) | 全局SELECT权限 | Y/N |
| Load_priv | CHAR(1) | 全局LOAD权限 | Y/N |
| Alter_priv | CHAR(1) | 全局ALTER权限 | Y/N |
| Create_priv | CHAR(1) | 全局CREATE权限 | Y/N |
| Drop_priv | CHAR(1) | 全局DROP权限 | Y/N |
| Usage_priv | CHAR(1) | 连接权限 | Y/N |
| Show_view_priv | CHAR(1) | 查看视图权限 | Y/N |
| Cluster_usage_priv | CHAR(1) | 集群使用权限 | Y/N |
| Stage_usage_priv | CHAR(1) | Stage使用权限 | Y/N |
| ssl_type | CHAR(9) | SSL类型 | – |
| ssl_cipher | VARCHAR(MAX) | SSL加密套件 | – |
| x509_issuer | VARCHAR(MAX) | X509颁发者 | – |
| x509_subject | VARCHAR(MAX) | X509主题 | – |
| max_questions | BIGINT | 每小时最大查询数 | 0=无限制 |
| max_updates | BIGINT | 每小时最大更新数 | 0=无限制 |
| max_connections | BIGINT | 每小时最大连接数 | 0=无限制 |
| max_user_connections | BIGINT | 用户最大并发连接数 | 0=无限制 |
| plugin | CHAR(64) | 认证插件 | – |
| authentication_string | VARCHAR(MAX) | 认证密码串 | – |
| password_policy.expiration_seconds | VARCHAR(32) | 密码过期秒数 | – |
| password_policy.password_creation_time | VARCHAR(32) | 密码创建时间 | – |
| password_policy.history_num | VARCHAR(32) | 密码历史数量 | – |
| password_policy.history_passwords | VARCHAR(MAX) | 历史密码 | – |
| password_policy.num_failed_login | VARCHAR(32) | 失败登录次数 | – |
| password_policy.password_lock_seconds | VARCHAR(32) | 密码锁定秒数 | – |
| password_policy.failed_login_counter | VARCHAR(32) | 失败登录计数器 | – |
| password_policy.lock_time | VARCHAR(32) | 锁定时间 | – |
2.2 procs_priv 表
存储存储过程和函数的权限信息。
| 字段名 | 数据类型 | 业务含义 |
|---|---|---|
| Host | CHAR(60) | 主机名 |
| Db | CHAR(64) | 数据库名 |
| User | CHAR(32) | 用户名 |
| Routine_name | CHAR(64) | 例程名 |
| Routine_type | CHAR(9) | 例程类型:PROCEDURE/FUNCTION |
| Grantor | CHAR(93) | 授权者 |
| Proc_priv | CHAR(16) | 例程权限 |
| Timestamp | CHAR(1) | 时间戳 |
三、__internal_schema 库
__internal_schema 是 Doris 内部使用的系统库,用于存储统计信息、审计日志等内部数据。该库的表定义在 InternalSchema.java 和 InternalSchemaInitializer.java 中。
源码定义:
publicstaticfinalStringINTERNAL_DB_NAME="__internal_schema";
3.1 column_statistics 表(表级统计信息)
存储列级统计信息,用于查询优化器生成执行计划。
重要字段说明:
-
id: 统计信息唯一标识,格式为
catalog.db.table.index.column -
catalog_id/db_id/tbl_id/idx_id/col_id: 层级标识
-
count: 行数估计
-
ndv: 不同值数量(Number of Distinct Values),用于选择性估算
-
null_count: NULL值数量
-
min/max: 列的最小/最大值,用于范围查询优化
-
data_size_in_bytes: 数据大小
| 字段名 | 数据类型 | 可空 | 业务含义 |
|---|---|---|---|
| id | VARCHAR(4096) | NOT NULL | 统计信息ID,格式:catalog.db.table.index.column |
| catalog_id | VARCHAR(1024) | NOT NULL | Catalog ID |
| db_id | VARCHAR(1024) | NOT NULL | 数据库ID |
| tbl_id | VARCHAR(1024) | NOT NULL | 表ID |
| idx_id | VARCHAR(1024) | NOT NULL | 索引ID |
| col_id | VARCHAR(1024) | NOT NULL | 列ID |
| part_id | VARCHAR(1024) | NULLABLE | 分区ID |
| count | BIGINT | NULLABLE | 行数估计 |
| ndv | BIGINT | NULLABLE | 不同值数量(基数) |
| null_count | BIGINT | NULLABLE | NULL值数量 |
| min | VARCHAR(MAX) | NULLABLE | 最小值 |
| max | VARCHAR(MAX) | NULLABLE | 最大值 |
| data_size_in_bytes | BIGINT | NULLABLE | 数据大小(字节) |
| update_time | DATETIME | NOT NULL | 更新时间 |
| hot_value | STRING | NULLABLE | 热数据值 |
3.2 partition_statistics 表(分区级统计信息)
存储分区级别的统计信息。
| 字段名 | 数据类型 | 可空 | 业务含义 |
|---|---|---|---|
| catalog_id | VARCHAR(1024) | NOT NULL | Catalog ID |
| db_id | VARCHAR(1024) | NOT NULL | 数据库ID |
| tbl_id | VARCHAR(1024) | NOT NULL | 表ID |
| idx_id | VARCHAR(1024) | NOT NULL | 索引ID |
| part_name | VARCHAR(1024) | NOT NULL | 分区名 |
| part_id | BIGINT | NOT NULL | 分区ID |
| col_id | VARCHAR(1024) | NOT NULL | 列ID |
| count | BIGINT | NULLABLE | 行数 |
| ndv | HLL | NOT NULL | 不同值数量(HyperLogLog) |
| null_count | BIGINT | NULLABLE | NULL值数量 |
| min | VARCHAR(MAX) | NULLABLE | 最小值 |
| max | VARCHAR(MAX) | NULLABLE | 最大值 |
| data_size_in_bytes | BIGINT | NULLABLE | 数据大小 |
| update_time | DATETIME | NOT NULL | 更新时间 |
3.3 histogram_statistics 表(直方图统计信息)
存储直方图统计信息,用于更精确的选择性估算。
| 字段名 | 数据类型 | 可空 | 业务含义 |
|---|---|---|---|
| id | VARCHAR(4096) | NOT NULL | 统计信息ID |
| catalog_id | VARCHAR(1024) | NOT NULL | Catalog ID |
| db_id | VARCHAR(1024) | NOT NULL | 数据库ID |
| tbl_id | VARCHAR(1024) | NOT NULL | 表ID |
| idx_id | VARCHAR(1024) | NOT NULL | 索引ID |
| col_id | VARCHAR(1024) | NOT NULL | 列ID |
| sample_rate | DOUBLE | NOT NULL | 采样率 |
| buckets | VARCHAR(MAX) | NOT NULL | 直方图桶数据(JSON格式) |
| update_time | DATETIME | NOT NULL | 更新时间 |
3.4 audit_log 表(审计日志)
存储 SQL 审计日志,记录所有执行的查询信息。
重要字段说明:
-
query_id: 查询唯一标识
-
time: 执行时间
-
user/client_ip: 执行用户和客户端
-
state: 查询状态(OK/ERROR)
-
query_time: 查询耗时
-
cpu_time_ms: CPU耗时
-
peak_memory_bytes: 峰值内存
-
scan_rows/scan_bytes: 扫描数据量
-
stmt: SQL语句(最后一列,便于日志查看)
| 字段名 | 数据类型 | 可空 | 业务含义 |
|---|---|---|---|
| query_id | VARCHAR(2048) | NULLABLE | 查询ID |
| time | DATETIMEV2(3) | NULLABLE | 执行时间 |
| client_ip | VARCHAR(128) | NULLABLE | 客户端IP |
| user |

作者介绍
司马辽太杰,10 余年互联网、金融、运营商等行业数据库管理经验,擅长常见关系型、NoSQL、MPP 、云原生等类型数据库的架构设计和运维管理。工作之余,热爱历史、足球,也喜欢读点闲书。欢迎关注我的个人公众号“司马辽太杰”。有数据库方面需求随时联系。

夜雨聆风