- TiDB 系统数据库
- 权限系统表
- 服务端帮助信息系统表
- 统计信息相关系统表
- GC Worker 相关系统表
- 其它系统表
- INFORMATION_SCHEMA 里面的表
- CHARACTER_SETS Table
- COLLATIONS Table
- COLLATION_CHARACTER_SET_APPLICABILITY Table
- COLUMNS Table
- COLUMN_PRIVILEGES Table
- ENGINES Table
- EVENTS Table
- FILES Table
- GLOBAL_STATUS Table
- GLOBAL_VARIABLES Table
- KEY_COLUMN_USAGE Table
- OPTIMIZER_TRACE Table
- PARAMETERS Table
- PARTITIONS Table
- PLUGINS Table
- PROFILING Table
- REFERENTIAL_CONSTRAINTS Table
- ROUTINES Table
- SCHEMATA Table
- SCHEMA_PRIVILEGES Table
- SESSION_STATUS Table
- SESSION_VARIABLES Table
- STATISTICS Table
- TABLES Table
- TABLESPACES Table
- TABLE_CONSTRAINTS Table
- TABLE_PRIVILEGES Table
- TRIGGERS Table
- USER_PRIVILEGES Table
- VIEWS Table
TiDB 系统数据库
TiDB 的系统数据库跟 MySQL 类似,里面包含一些服务器运行时需要的信息。
权限系统表
这些系统表里面包含了用户账户以及相应的授权信息:
user用户账户,全局权限,以及其它一些非权限的列db数据库级别的权限tables_priv表级的权限columns_priv列级的权限
服务端帮助信息系统表
help_topic目前为空
统计信息相关系统表
stats_buckets统计信息的桶stats_histograms统计信息的直方图stats_meta表的元信息,比如总行数和修改数
GC Worker 相关系统表
gc_delete_range
其它系统表
GLOBAL_VARIABLES全局系统变量表tidb用于 TiDB 在 bootstrap 的时候记录相关版本信息
INFORMATION_SCHEMA 里面的表
INFORMATION_SCHEMA 库里面的表主要是为了兼容 MySQL 而存在,有些第三方软件会查询里面的信息。在目前 TiDB 的实现中,里面大部分只是一些空表。
CHARACTER_SETS Table
提供字符集相关的信息,其实数据是假的。TiDB 默认支持并且只支持 utf8mb4 。
mysql> select * from CHARACTER_SETS;+--------------------|----------------------|-----------------------|--------+| CHARACTER_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION | MAXLEN |+--------------------|----------------------|-----------------------|--------+| ascii | ascii_general_ci | US ASCII | 1 || binary | binary | Binary pseudo charset | 1 || latin1 | latin1_swedish_ci | cp1252 West European | 1 || utf8 | utf8_general_ci | UTF-8 Unicode | 3 || utf8mb4 | utf8mb4_general_ci | UTF-8 Unicode | 4 |+--------------------|----------------------|-----------------------|--------+5 rows in set (0.00 sec)
COLLATIONS Table
同上。
COLLATION_CHARACTER_SET_APPLICABILITY Table
空表。
COLUMNS Table
COLUMNS 表提供了关于所有表的列的信息。这张表里面的信息不准确,推荐使用 SHOW 语句查询:
SHOW COLUMNS FROM table_name [FROM db_name] [LIKE 'wild']
COLUMN_PRIVILEGES Table
空表。
ENGINES Table
ENGINES 表提供了关于存储引擎的信息。目前这张表里面的数据是假的。生产环境中,TiDB 只推荐使用 TiKV 引擎。
EVENTS Table
空表。
FILES Table
空表。
GLOBAL_STATUS Table
空表。
GLOBAL_VARIABLES Table
空表。
KEY_COLUMN_USAGE Table
KEY_COLUMN_USAGE 这张表描述了关于列的 key 的约束,比如是否是主键列。
OPTIMIZER_TRACE Table
空表。
PARAMETERS Table
空表。
PARTITIONS Table
空表。
PLUGINS Table
空表。
PROFILING Table
空表。
REFERENTIAL_CONSTRAINTS Table
空表。
ROUTINES Table
空表。
SCHEMATA Table
SCHEMATA 表提供了关于数据库的信息。表中的内容和 SHOW DATABASES 基本等价。
mysql> select * from SCHEMATA;+--------------|--------------------|----------------------------|------------------------|----------+| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |+--------------|--------------------|----------------------------|------------------------|----------+| def | INFORMATION_SCHEMA | utf8 | utf8_bin | NULL || def | mysql | utf8 | utf8_bin | NULL || def | PERFORMANCE_SCHEMA | utf8 | utf8_bin | NULL || def | test | utf8 | utf8_bin | NULL |+--------------|--------------------|----------------------------|------------------------|----------+4 rows in set (0.00 sec)
SCHEMA_PRIVILEGES Table
空表。
SESSION_STATUS Table
空表。
SESSION_VARIABLES Table
SESSION_VARIABLES 表提供了关于 session 变量的信息。表中的数据跟 SHOW SESSION VARIABLES 类似。
STATISTICS Table
统计信息的表。
mysql> desc statistics;+---------------|---------------------|------|------|---------|-------+| Field | Type | Null | Key | Default | Extra |+---------------|---------------------|------|------|---------|-------+| TABLE_CATALOG | varchar(512) | YES | | NULL | || TABLE_SCHEMA | varchar(64) | YES | | NULL | || TABLE_NAME | varchar(64) | YES | | NULL | || NON_UNIQUE | varchar(1) | YES | | NULL | || INDEX_SCHEMA | varchar(64) | YES | | NULL | || INDEX_NAME | varchar(64) | YES | | NULL | || SEQ_IN_INDEX | bigint(2) UNSIGNED | YES | | NULL | || COLUMN_NAME | varchar(21) | YES | | NULL | || COLLATION | varchar(1) | YES | | NULL | || CARDINALITY | bigint(21) UNSIGNED | YES | | NULL | || SUB_PART | bigint(3) UNSIGNED | YES | | NULL | || PACKED | varchar(10) | YES | | NULL | || NULLABLE | varchar(3) | YES | | NULL | || INDEX_TYPE | varchar(16) | YES | | NULL | || COMMENT | varchar(16) | YES | | NULL | || INDEX_COMMENT | varchar(1024) | YES | | NULL | |+---------------|---------------------|------|------|---------|-------+
下列操作是等价的。
SELECT * FROM INFORMATION_SCHEMA.STATISTICSWHERE table_name = 'tbl_name'AND table_schema = 'db_name'SHOW INDEXFROM tbl_nameFROM db_name
TABLES Table
TABLES 表提供了数据库里面关于表的信息。
以下操作是等价的:
SELECT table_name FROM INFORMATION_SCHEMA.TABLESWHERE table_schema = 'db_name'[AND table_name LIKE 'wild']SHOW TABLESFROM db_name[LIKE 'wild']
TABLESPACES Table
空表。
TABLE_CONSTRAINTS Table
TABLE_CONSTRAINTS 记录了表的约束信息。其中:
CONSTRAINT_TYPE的取值可以是 UNIQUE, PRIMARY KEY, 或者 FOREIGN KEY。- UNIQUE 和 PRIMARY KEY 信息跟 SHOW INDEX 看到的是一样的。
TABLE_PRIVILEGES Table
空表。
TRIGGERS Table
空表。
USER_PRIVILEGES Table
USER_PRIVILEGES 表提供了关于全局权限的信息。这张表的内容是根据 mysql.user 表生成的。
mysql> desc USER_PRIVILEGES;+----------------|--------------|------|------|---------|-------+| Field | Type | Null | Key | Default | Extra |+----------------|--------------|------|------|---------|-------+| GRANTEE | varchar(81) | YES | | NULL | || TABLE_CATALOG | varchar(512) | YES | | NULL | || PRIVILEGE_TYPE | varchar(64) | YES | | NULL | || IS_GRANTABLE | varchar(3) | YES | | NULL | |+----------------|--------------|------|------|---------|-------+4 rows in set (0.00 sec)
VIEWS Table
空表。TiDB 暂不支持视图。
